Control system and method for a rotating electromagnetic machine

ABSTRACT

A system and method for controlling a rotating electromagnetic machine. The rotating machine, such as a permanent magnet motor or switched reluctance motor, includes a stator having a plurality of phase windings and a rotor that rotates relative to the stator. A drive is connected to the phase windings for energizing the windings. The control system includes an estimator connectable to the machine for receiving signals representing the phase winding voltage and rotor position. The estimator outputs parameter estimations for an electrical model of the machine based on the received voltage and rotor position. A torque model receives the parameter estimations from the estimator to estimate torque for associated rotor position-phase current combinations of the machine. A controller outputs a control signal to the drive in response to a torque demand and rotor position signals and the torque model. In certain embodiments, a solver uses the torque model to generate energization current profiles according to desired machine behavior, such as smooth torque and/or minimal sensitivity to errors in rotor position measurement.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The invention relates generally to the control of electromagnetic rotating machines such as permanent magnet, switched reluctance and hybrid machines thereof, and more particularly, to adaptive, smooth torque control of such machines.

[0003] 2. Description of Related Art

[0004] Many electromagnetic machines in general, and electric motors employing permanent magnets in particular, exhibit torque irregularities as the rotor rotates with respect to the stator, the coils of which are typically energized with a sinusoidal waveform. Such irregularities are referred to as “torque ripple.” These torque irregularities may be caused by the physical construction of a given machine. For example, they may result from the use of bearings to support the rotor. In addition, because of the electromagnetic characteristics of machines that employ magnets, the rotor tends to prefer certain angular positions with respect to the stator. Torque irregularities resulting from the electromagnetic characteristics of an electromagnetic machine are commonly known as “cogging” irregularities and the resultant non-uniform rotation of the rotor or non-uniform torque output is known as “cogging.” Cogging is either current independent or current dependent. The first component is noted when the machine is spun unenergized. The second component is present when current flows—the cogging grows as the magnitude of the stator currents increases.

[0005] In rotating electromagnetic machines employing permanent magnets, cogging most often results from the physical construction of the machine. Irregularities due to the magnets can result, for example, from the magnets being incorrectly placed upon or in the rotor, or from some irregularity about how the magnets are energized. Moreover, the utilization of rotors having discrete north and south outer poles results in a circumferential distribution of magnetic flux about the rotor circumference that is not smooth, but choppy. Additionally, the stators commonly used with such machines are formed in such a way that the magnetic fluxes generated by the stator windings provide a flux distribution about the stator circumference that is not smooth. The combination of such rotors and stators, and the accompanying non-smooth flux distributions, produces undesired irregularities in the torque output of such machines. Rotor output non-uniformities may also be produced by back emf harmonics produced in certain machines.

[0006] Obtaining smooth torque is further complicated by other factors. For instance, manufacturing variances between motors makes it difficult, if not impossible, to apply a common solution to a group of motors. Such manufacturing variance includes the placing or misplacing of magnets upon the rotor (if surface mounted), variance introduced by the magnetizing process itself and irregularities in the stator coil windings. Other causes of variance include instances when the magnets are damaged or chipped. Further, variations exist even within individual motors. For example, variations typically exist between a motor's phases and over the motor's full mechanical cycle. Moreover, motor behavior changes over time as the motor ages.

[0007] The phase windings of certain types of electromagnetic machines are energized at least in part as a function of the instantaneous rotor position. Accordingly, such machines often use a rotor position sensor that provides an output indicating rotor position relative to the stator. A controller uses this information to produce control signals that are used to energize and de-energize the phase windings. Errors in the measurement of the angular position of the rotor also contribute to torque ripple.

[0008] For many motor applications a slight non-uniformity in the rotation of the rotor caused by torque irregularities is of little or no consequence. For example, in large motors driving large loads, slight variations in the output torque will not significantly affect the rotor speed and any slight variations in rotor speed will not significantly affect the system being driven by the machine. This assumes that the torque variation as the machine turns is small compared to the load. In other applications, where the rotation of the rotor or the torque output of the motor must be precisely controlled or uniform, such non-uniformity is not acceptable. For example, in servomotors used in electric power steering systems and is in disk drives, the rotational output of the rotor or the torque output of the motor must be smooth and without significant variation.

[0009] Prior art approaches to reducing the undesirable consequences of torque irregularities in electromagnetic machines have focused on relatively complex rotor or stator constructions designed to eliminate the physical characteristics of the machines that would otherwise give rise to the irregularities. While the prior art machine construction approaches can result in reduction of torque irregularities, the approaches require the design and construction of complex rotor and stator components, such complex components are typically difficult to design, difficult to manufacturer, and much more costly to produce than are conventionally constructed components. Moreover, many of the physical changes required by such prior art solutions result in a significant reduction in the efficiency or other performance parameters of the resulting machines over that expected of comparable conventional machines. Thus, many of the prior art attempts to reduce torque irregularities do so at the cost of machine performance.

[0010] Attempts to reduce torque ripple that focus on motor control schemes, rather than motor construction, have also been undertaken. For example, various learning or iterative schemes, based on either experimental procedures or well known physical relationships concerning motor voltages, currents and angular positions have been attempted. These attempted solutions often make assumptions concerning the behavior of the motor, such as motor flux being described by a linear relationship, or considering the effect of mutual flux insignificant. Still further, prior solutions to torque ripple typically ignore the effect of motor sensitivity to inaccuracies in angular measurement. To increase accuracy in position measurement, the use of sophisticated position sensors has been attempted, but this increases the machine's complexity and cost.

[0011] Thus, a need exists for a control system that addresses the shortcomings of the prior art.

SUMMARY OF THE INVENTION

[0012] In one aspect of the present invention, a system for controlling a rotating electromagnetic machine is presented. The rotating machine, such as a permanent magnet motor or switched reluctance motor, or some hybrid of the two, includes a stator having a plurality of phase windings and a rotor that rotates relative to the stator. A drive is connected to the phase windings for energizing the windings. The control system includes an estimator connectable to the machine for receiving signals representing the phase winding voltage, current and rotor position. The estimator outputs parameter estimations for an electrical model of the machine based on the received voltage, current and rotor position. The electrical model is a mathematical model that describes electrical behavior of the machine as seen at the motor terminals.

[0013] A torque model receives the parameter estimations from the estimator. The torque model is developed via a mathematical transform of the electrical model, and describes torque characteristics of the machine. Using the parameters received from the estimator, the torque model estimates torque for associated rotor position-phase current combinations. A controller has input terminals for receiving a torque demand signal and the rotor position signal. The controller outputs a control signal to the drive in response to the torque demand and rotor position signals and the torque model. In certain embodiments, a solver uses the torque model to generate energization current profiles according to desired machine behavior, such as smooth torque and/or minimal sensitivity to errors in rotor position measurement. It is to be noted in particular that the solver can be so defined that the solution possesses particular properties. It may be desired to deal with only the most significant components of cogging or torque ripple, a result of motor drive cost considerations. Such a solution can be achieved.

[0014] Some parameters of the torque model are unobservable via information immediately available from the machine terminals. For example, in machines employing permanent magnets, it is not mathematically obvious how changes in the machine current and voltage, as the rotor spins, indicate or measure the interaction of the machine's magnets with themselves. In accordance with further aspects of the present invention, a method of determining a non-load dependent cogging torque is provided. The rotor is spun unloaded at a predetermined angular velocity and the motor terminal voltage and current are measured. Rotor positions associated with the voltage and current measurements are determined, and a first mathematical model is developed based on the measured voltage and rotor position to describe electrical behavior of the machine. The first mathematical model is mathematically transformed to develop a second mathematical model to describe torque characteristics of the machine. The windings are then energized such that the rotor holds a predetermined position against the cogging torque, and the cogging torque is calculated for the predetermined position via the second mathematical model.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the drawings in which:

[0016]FIG. 1 is a block diagram of an exemplary rotating electromagnetic machine system in accordance with embodiments of the present invention;

[0017]FIG. 2 is a block diagram illustrating an electromagnetic machine control system in accordance with embodiments of the present invention;

[0018]FIG. 3 is a chart illustrating an exemplary integration path for evaluating an integral giving coenergy used in embodiments of the invention;

[0019]FIG. 4 illustrates current profiles generated for a smooth torque solution in accordance with the present invention; and

[0020]FIG. 5 illustrates torque ripple for a machine controlled in accordance with aspects of the present invention.

[0021] While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

DETAILED DESCRIPTION OF THE INVENTION

[0022] Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.

[0023] Turing to the drawings and, in particular, to FIG. 1, a system 10 constructed according to certain teachings of this disclosure is illustrated. Among other things, the illustrated system 10 actively controls the electric power supplied to an electromagnetic machine such that the negative consequences of torque irregularities that would otherwise be produced by the machine are reduced or eliminated.

[0024] The system 10 includes an electromagnetic machine 12 and a drive 14 that provides electric power to the electromagnetic machine 12. The machine 12 shown in FIG. 1 may comprise, for example, a permanent magnet motor, a switched reluctance motor, or a hybrid motor (permanent magnet and switched reluctance combination). The machine 12 is of conventional construction that includes a rotating component (a rotor 12 a) and a stationary component (a stator 12 b). Wound about the stator are a number of energizable phase windings 12 c which may be energized through the application of electric power to motor terminals 15, 16, 17.

[0025] The drive 14 is coupled to provide electric power to terminals 15, 16 and 17 of the machine 12. The drive 14 receives control inputs from a control system 13, which is coupled to receive feedback from the machine 12 in terms of rotor position information 18 and energization feedback 19. Other feedback information may be provided to the controller 13. While the drive 14 is illustrated in exemplary form as providing three power terminals to the machine 12, it should be understood that more or fewer power terminals may be provided to accommodate motors or machines with greater than three phases, less than three phases or if various types of inverters (e.g., with neutral connections) are used.

[0026] The energization feedback 19 provides an indication of the operational characteristics of the machine 12 and may, for example, include feedback concerning the currents flowing in the stator windings and/or the voltages at the terminals 15, 16 and 17. The position and energization parameters may be detected through conventional detectors such as standard rotor position detectors and standard current/voltage sensors. Alternative embodiments are envisioned in which the rotor position and feedback parameters are not detected directly but are calculated or estimated through known techniques. For example, embodiments are envisioned where only the terminal voltages are known or sensed along with the currents flowing through the stator windings of the machine 12 and the sensed current and voltage values are used to derive rotor position information.

[0027] The control system 13 also receives input command signals 11 that correspond to a desired output parameter of machine 12 such as rotor speed, output torque, etc. As described in more detail below, the drive 14 controls the application of electric power to machine 12 in response to the control system 13 in such a manner that the difference between the input command signal 11 and the corresponding output of the machine 12 is minimized. In certain embodiments, the control system 13 also actively controls application of power to the machine 12 as a function of rotor position in such a manner to achieve a desired behavior of the machine 12 meeting one or more criteria in categories including, for example, torque ripple, cogging torque, angular sensitivity, harmonic content, etc. The use of the control system 13 to actively achieve desired machine behavior, as opposed to attempting to achieve such behavior through complex rotor or stator constructions, results in a better performing system in that, for example, conventional, low cost machines and machine construction techniques may be used.

[0028] An electromagnetic machine system 100 in accordance with an exemplary embodiment of the present invention is shown in FIG. 2. The machine system 100 includes a control system 13, which may be implemented by an appropriately programmed digital controller, such as a digital signal processor (DSP), microcontroller or microprocessor.

[0029] The control system 13 includes an input terminal 11 that receives, for example, a signal representing the torque demanded of the motor 12. Torque is a function of current and angle; hence, for any particular rotor angle there is a set of appropriate currents that will produce the desired torque. Based on the rotor angle and the required torque, appropriate current values are sent to the drive 14, which in turn provides the necessary voltage to the motor 12 to meet the current demand.

[0030] Rotor position feedback 18 and energization feedback 19, such as the motor terminal voltage and current, are provided to an estimator 30. In accordance with mathematical “good practice,” the voltage and current values may be normalized—the measured values are divided by the maximum expected value. The estimator 30 calculates motor parameters such as angular speed and the time derivatives of the phase currents. These values are used to derive and update a first mathematical model that describes the electrical behavior of the motor 12. The structure of the electrical model is such that it can accurately represent electrical machine characteristics such as resistance, back electromagnetic force (“BEMF”), self and mutual inductance, cogging, etc., depending on the type of machine 12 employed.

[0031] The parameters calculated by the estimator 30 are passed to a torque model 32 of the motor 12. The torque model 32 is developed by mathematically transforming the electrical model in an appropriate manner, dictated by the electromagnetic physics of the motor 12, into a second model that describes the torque characteristics of the machine 12. Since the electrical model coefficients flow naturally into the torque model 32, by constructing an accurate electrical model of the motor 12, the torque characteristics of the motor 12 are also known. For example, the torque model may describe the torque produced for any combination of phase current and rotor position in the normal operating envelope of the machine. Thus, using the values calculated by the estimator 30, an estimate of motor torque can be calculated for any current-angle combination.

[0032] The torque model 32 is interrogated by a solver 34, which calculates the required currents, or solution curves, according to some desired motor behavior and the known behavior of the motor 12 (as regards current and angle). Thus, the controller 36 provides the appropriate current for a given rotor angular position to achieve the desired output torque 40 or other output parameter, and further, to achieve the output parameter in accordance with the desired machine behavior. For example, the desired machine behavior may include the operating characteristics of the motor 12 meeting one or more criteria in categories including cogging torque, torque ripple, angular sensitivity of the solution to angular error and harmonic content of the solution curves. In the particular system 100 shown in FIG. 2, the solver 34 output is stored explicitly as a lookup table accessible by the controller 36. The torque demand 11 and rotor angle is applied to the lookup table to determine the appropriate phase current value to be applied to the phase windings via the driver 14. In other embodiments, the output of the solver 34 is in an analytic form, derived by fitting a function to the calculated numerical values.

[0033] Since the electrical model used by the estimator 30 is algebraic in nature, the estimator 30 can be allowed to run for some time period operating upon not necessarily sequential data before a new set of parameter estimates are released in to the torque model 32. At this point the solver 34 can then recalculate the necessary lookup tables 36. Once fully calculated, the new lookup tables can then replace those tables currently in use. Many of these operations can be background tasked; that is, they can occur as and when computational resources are available. This is one of the advantages of an algebraic motor model—it is not intricately wrapped up in the time variable.

[0034] Torque can be estimated via coenergy or field energy, though calculating torque via coenergy results in simpler expressions. Thus, the estimate of output torque 40 can be calculated using only feedback available from the machine terminals—such as the terminal voltage and current and the rotor position—to estimate the parameters of resistance and flux linkage. The following disclosure is generally provided in terms of a three phase hybrid motor, though the model form can be generalized into different types of rotating machines having any number of phases by one skilled in the art having the benefit of this disclosure.

[0035] It is common in many applications to utilize what is known as a balanced three phase feed. In such systems, when a three-phase motor is used, the sum of the three phase currents will equal zero. Hence, the αβ-Frame of Reference (FoR) can be used. If balanced feed is not used, it is necessary to use the abc-FoR. The αβ-FoR is considered first.

[0036] The electrical model may have the form of a product of polynomial expressions in current and angle. Typically, those for angle will involve trigonometric functions. The current polynomials may also be orthogonal and may be one of any number of suitable polynomial types. For more complex machines, an orthogonal model form may be appropriate. With the first model structure disclosed herein, it is assumed that flux linkage models are expressions that are products of polynomial terms involving phase currents and trigonometric polynomials of mechanical angle. Models using orthogonal functions are discussed further later in this specification. Generally, the following nomenclature is used in this disclosure:

[0037] φ is the phase index, ranges over defined set of numbers {1,2,3, . . . } or equivalent letters {a,b,c, . . . }

[0038] a,b,c are phase names, equivalent to 1,2,3 when numerically referenced

[0039] α,β,0 are αβ Frame of Reference (FoR) labels

[0040] λ_(φ) is the phase φ flux linkage

[0041] p,P . . . q,Q . . . r,R . . . n,N are summation indexes and maximum index values

[0042] sin( ), cos( ) are trigonometric functions

[0043] g_(φpqrn), h_(φpqrn) are model parameters

[0044] i_(α),i_(β),i_(C) are variables representing αβ frame of reference currents

[0045] I_(α),I_(β) are maximum values of αβ-frame of reference currents encountered in the coenergy integral

[0046] i_(a),i_(b),i_(c) are variables representing abc-frame of reference currents

[0047] I_(a),I_(b),I_(c) are maximum values of abc-FoR currents encountered in the coenergy integral

[0048] i_(f) is the current flow associated with the fictious rotor circuit modelling the presence of a magnet

[0049] v_(φ) is the phase φ voltage

[0050] R_(φα),R_(φβ),R_(φαβ) are resistance values associated with phase φ $\frac{\quad}{y}x$

[0051] is the differential of x with respect to y

[0052] θ is the rotor angle

[0053] ω is the rotor angular velocity

[0054] t is time t

[0055] ω_(c) is coenergy

[0056] dx is x infintesimal

[0057] ∫ f(x) dx is the integral of f(x) with respect to x $\frac{\partial\quad}{\partial x}{f\left( {x,y,\ldots} \right)}$

[0058] is the partial derivative of function f(.) with respect to x

[0059] D₁, . . . ,D₆ are components of the coenergy integral, along defined path

[0060] T is motor or true torque

[0061] o(x^(n)) is the remainder associated with n'th order and higher terms of the Jacobian matrix

[0062] J_(ij) is the ij'th entry of the Jacobian

[0063] F_(i)(x₁, . . . ,x_(M)) is the i'th function of variables x₁, . . . ,x_(M) δx is delta x

[0064] δx_(new) is the new value of delta x, or change in x

[0065] x_(new), x_(old) are new and old values of x calculated during Newton iterative process

[0066] T_(tv) is estimated torque, directly from the terminal variables

[0067] T_(cog) is torque which cannot be calculated directly using terminal variables

[0068] S_(a) is solution sensitivity $I = \begin{pmatrix} {i_{\alpha}\left( {\theta (1)} \right)} \\ {i_{\alpha}\left( {\theta (2)} \right)} \\ \cdots \\ {i_{\alpha}\left( {\theta (N)} \right)} \\ {i_{\beta}\left( {\theta (1)} \right)} \\ {i_{\beta}\left( {\theta (2)} \right)} \\ \cdots \\ {i_{\beta}\left( {\theta (N)} \right)} \end{pmatrix}$

[0069] is the vector of αβ frame of reference current values across the set of discrete angle values

[0070] I(n+1),I(n) are the (n+1)'th and n'th iterated current vectors

[0071] ΔI(n) is the calculated change in current vector at n'th interval

[0072] φ_(Tk)=(0 . . . 0 T(θ(k),i_(α)(k),i_(β)(k)) 0 . . . 0) is the k'th torque vector

[0073] φ_(Sk)=(0 . . . 0 S(θ(k),i_(α)(k),i_(β)(k)) 0 . . . 0) is the k'th sensitivity vector ${A = \begin{pmatrix} \varphi_{T1} \\ \cdots \\ \varphi_{TN} \end{pmatrix}}\quad$

[0074] are stacked torque vectors $B = \begin{pmatrix} \varphi_{S1} \\ \cdots \\ \varphi_{SN} \end{pmatrix}$

[0075] are stacked current vectors

[0076] Assuming that the model structure for each machine phase (φ) is identical, the general form of the flux model using the αβ-FoR is: $\begin{matrix} {\lambda_{\varphi} = {\sum\limits_{p = 0}^{P}\quad {i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {i_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} & (1) \end{matrix}$

[0077] Such a model allows for a non-linear relationship between phase current and flux as well as mutual effects between any two or more phases. As noted above, for the purposes of the present disclosure it is assumed that model structure is invariant with respect to phase, although this need not be so. Contiguous powers of polynomial current and angle harmonic need not be used, as is the case in Equation (1). For example, consider the following: $\begin{matrix} {\lambda_{\varphi} = {\sum\limits_{p = p_{1}}^{p_{S}}\quad {i_{\alpha}^{p} \cdot {\sum\limits_{q = q_{1}}^{q_{T}}\quad {i_{\beta}^{q} \cdot {\sum\limits_{r = r_{1}}^{r_{U}}\quad {i_{f}^{r} \cdot {\sum\limits_{n = n_{1}}^{n_{V}}\quad \left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} & (2) \end{matrix}$

[0078] where the indexing sets:

[0079] p=(p₁,p₂, . . . ,p_(S).) r=(r₁,r₂, . . . ,r_(U).)

[0080] q=(q₁,p₂, . . . ,q_(T).) n=(n₁,n₂, . . . ,n_(V).)

[0081] need not contain contiguous integers. In fact, most practical applications will have this form.

[0082] Relatively simple models of the form presented in Equation (2) that are sufficiently accurate can be obtained. Model structure can be allowed to vary between phases if so desired. This variation upon defining model structure has a significant impact upon the computational complexity of the associated algorithms. Some model components will be present as a result of manufacturing variance and would not be suggested by a theoretical consideration of the motor design. Further, model complexity can vary greatly between motors of different design. For example, a permanent magnet motor design with the express intent of reducing cogging, typically through the use of skew, may only require a very simple model to accurately predict torque. It is generally desirable to avoid models that are over or under determined.

[0083] The abc-FoR currents can be transformed into αβ-FoR currents using the following transform: $\begin{matrix} {\begin{pmatrix} i_{\alpha} \\ i_{\beta} \\ i_{0} \end{pmatrix} = {\begin{pmatrix} 1 & 0 & 1 \\ \frac{- 1}{2} & {\frac{- 1}{2} \cdot \sqrt{3}} & 1 \\ \frac{- 1}{2} & {\frac{1}{2} \cdot \sqrt{3}} & 1 \end{pmatrix} \cdot \begin{pmatrix} i_{\alpha} \\ i_{b} \\ i_{c} \end{pmatrix}}} & (3) \end{matrix}$

[0084] Under the balanced feed assumption, the third phase current is zero. It is known that phase voltage (v_(φ)) is defined by $\begin{matrix} {v_{\varphi} = {{i_{\varphi} \cdot R_{\varphi}} + {\frac{\quad}{t}\lambda_{\varphi}}}} & (4) \end{matrix}$

[0085] where R_(φ) is the phase resistance. Thus, using the αβ-FoR: $\begin{matrix} {v_{\varphi} = {R_{\varphi} + {i_{\alpha} \cdot R_{\varphi\alpha}} + {i_{\beta} \cdot R_{\varphi\beta}} + {i_{\alpha} \cdot i_{\beta} \cdot R_{{\varphi\alpha}\quad \beta}} + {\frac{\quad}{t}\lambda_{\varphi}}}} & (5) \end{matrix}$

[0086] It should be noted that there are more resistance terms in Equation (5) then is necessary from the perspective of how electric circuits operate. Such additional terms allow for the presence of test data offsets and the like to be directly compensated for; otherwise the estimator will set redundant terms to zero.

[0087] It is also known that angular velocity (ω) is defined by: $\begin{matrix} {\omega = {\frac{\quad}{t}\theta}} & (6) \end{matrix}$

[0088] From Equations (1) and (4): $\begin{matrix} {{{\frac{\quad}{t}\lambda_{\varphi}} = {{\sum\limits_{p = 1}^{P}\quad {\left( {{{pi}_{\alpha}^{p - 1} \cdot \frac{\quad}{t}}i_{\alpha}} \right) \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}{\left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \cdots}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 1}^{Q}{\left( {{{qi}_{\beta}^{q - 1} \cdot \frac{\quad}{t}}i_{\beta}} \right) \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}{\left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \cdots}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{r = 1}^{R}{\left( {{{ri}_{f}^{r - 1} \cdot \frac{\quad}{t}}i_{f}} \right) \cdot {\sum\limits_{n = 0}^{N}{\left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \cdots}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}\quad} & (7) \end{matrix}$

[0089] The imaginary rotor current (i_(f)) is nominally constant and its time derivative is zero. Hence, from Equations (5) and (7): $\begin{matrix} {\quad {v_{\varphi} = {R_{\varphi} + {i_{\alpha} \cdot R_{\varphi\alpha}} + {i_{\beta} \cdot R_{\varphi\beta}} + {i_{\alpha} \cdot i_{\beta} \cdot R_{{\varphi\alpha\beta}\quad \cdots}} + \quad {\sum\limits_{p = 1}^{P}\quad {\left( {{{pi}_{\alpha}^{p - 1} \cdot \frac{\quad}{t}}i_{\alpha}} \right) \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}{\left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \cdots}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 1}^{Q}{\left( {{{qi}_{\beta}^{q - 1} \cdot \frac{\quad}{t}}i_{\beta}} \right) \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}{\left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \cdots}}}}}}}} + \quad \quad {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}\quad} & (8) \end{matrix}$

[0090] In embodiments employing a switched reluctance machine, there is no imaginary rotor current state as there are no rotor magnets with which this state is associated, hence: $\begin{matrix} {i_{f} \equiv {0\quad {and}\quad \frac{\quad}{t}i_{f}} \equiv 0} & (9) \end{matrix}$

[0091] Therefore, in the case of a switched reluctance machine, indexing variable (r) associated with the imaginary rotor phase may be removed from Equation (8): $\begin{matrix} {{v_{\varphi} = {R_{\varphi} + {i_{\alpha} \cdot R_{\varphi\alpha}} + {i_{\beta} \cdot R_{\varphi\beta}} + {i_{\alpha} \cdot i_{\beta} \cdot R_{{\varphi\alpha\beta}\quad \cdots}} + {\sum\limits_{p = 1}^{P}\quad {\left( {{{pi}_{\alpha}^{p - 1} \cdot \frac{\quad}{t}}i_{\alpha}} \right) \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{n = 0}^{N}{\left( {{g_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \cdots}}}}}} + \quad \quad {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 1}^{Q}{\left( {{{qi}_{\beta}^{q - 1} \cdot \frac{\quad}{t}}i_{\beta}} \right) \cdot {\sum\limits_{n = 0}^{N}{\left( {{g_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \cdots}}}}}} + \quad {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}\quad} & (10) \end{matrix}$

[0092] It would be a routine undertaking for one skilled in the art having the benefit of this disclosure to apply a similar process of simplification to the specific case of an SR motor, for example.

[0093] There are several techniques available for calculating the coefficients in the model given test data. As noted above, the electrical model is algebraic, which allows the use of any of a number of parameter estimation techniques, such as least squares methods or grammian matrix methods. Least squares-based parameter estimators find the model coefficients that minimize the square of the difference between the observed data and the output from the model. Recursive least square parameter estimators are used in particular embodiments of the invention. The recursive least squares parameter estimators are most suitable for actual production systems. They operate in such a manner that they can produce an improved estimate with each new sample of data. That is, they are not restricted in their operation to complete sets of test data.

[0094] A further refinement of the recursive least squares parameter estimation technique involves the use of a “forgetting factor,” which operates in the following manner. As more and more data is captured, the effect that the old data has upon the calculation of the new data is reduced. In this way, only the most recent data will have a significant effect in the parameter estimation process. This forgetting factor operates over any appropriate time interval—for example, minutes, hours or days—depending on design considerations. Many of the variables considered do not vary significantly over time. Some, however, such as phase resistance, vary over time and with respect to other factors such as the machine temperature. This added refinement allows the control system to be tuned to any particular machine, and also allows adaptation to changes in that machine. This typically occurs as the machine ages.

[0095] Various data collection schemes may be used for parameter estimation. For example, one data collection technique requires constant phase current, which usually only occurs in controlled data collection situations. Another involves varying current, typical of practical applications.

[0096] In the constant phase current data collection scheme, ${\frac{\quad}{t}i_{\alpha}} = {{\frac{\quad}{t}i_{\beta}} = 0}$

[0097] Under these conditions, Equation (8) reduces to: $\begin{matrix} {{v_{\varphi} = {R_{\varphi} + {i_{\alpha} \cdot R_{\varphi\alpha}} + {i_{\beta} \cdot R_{\varphi\beta}} + {i_{\alpha} \cdot i_{\beta} \cdot R_{{\varphi\alpha\beta}\quad \cdots}} + {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}\quad} & (11) \end{matrix}$

[0098] For notational convenience and to reflect the unobservability of the i_(f) term, the following identities are defined as a result of considering the last two Σ terms in Equation (11): $\begin{matrix} {{{\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot g_{\varphi \quad {pqrn}}}} = {G_{\varphi \quad {pqn}}\quad {for}\quad {all}\quad \varphi}},{p\quad {and}\quad q}} & (12) \\ {{{\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot h_{\varphi \quad {pqrn}}}} = {H_{\varphi \quad {pqn}}\quad {for}\quad {all}\quad \varphi}},{p\quad {and}\quad q}} & (13) \end{matrix}$

[0099] To retain consistency with Equation (10) for the case in which phase current varies, the harmonic terms (n) in Equation (11) are not collected into the H and G terms defined by Equations (12) and (13). Substituting Equations (12) and (13) into Equation (11) results in: $\begin{matrix} {{v_{\varphi} = {R_{\varphi} + {i_{\alpha} \cdot R_{\varphi\alpha}} + {i_{\beta} \cdot R_{\varphi\beta}} + {i_{\alpha} \cdot i_{\beta} \cdot R_{{\varphi\alpha\beta}\quad \cdots}} + {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{G_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}\quad} & (14) \end{matrix}$

[0100] Division throughout Equation (14) by ω yields: $\begin{matrix} {{\frac{v_{\varphi}}{\omega} = {{\frac{1}{\omega} \cdot R_{\varphi}} + {\frac{i_{\alpha}}{\omega} \cdot R_{\varphi\alpha}} + {\frac{i_{\beta}}{\omega} \cdot R_{\varphi\beta}} + {\frac{i_{\alpha} \cdot i_{\beta}}{\omega} \cdot R_{{\varphi\alpha\beta}\quad \cdots}} + {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}\quad} & (15) \end{matrix}$

[0101] Using Equation (14), the motor parameters can be estimated in the case of constant phase current.

[0102] As noted above, practical motor applications involve varying current. Equation (8) describes how the flux model coefficients, first presented in Equation (1), propagate through three separate paths when calculating phase voltage in the variable current case. The first path, as previously encountered, passes through those expressions explicitly involving ω. The other two paths involve expressions with time derivatives of the currents. As before, ω is divided throughout and substitutions as indicated in Equations (12) and (13) are made, yielding: $\begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} {\frac{v_{\varphi}}{\omega} = {{\frac{1}{\omega} \cdot R_{\varphi}} + {\frac{i_{\alpha}}{\omega} \cdot R_{\varphi \quad \alpha}} + {\frac{i_{\beta}}{\omega} \cdot R_{\varphi \quad \beta}} + {{\frac{i_{\alpha} \cdot i_{\beta}}{\omega} \cdot R_{\varphi \quad \alpha \quad \beta}}\ldots}}} \\ {{{+ \left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{\alpha}} \right)} \right\rbrack} \cdot {\sum\limits_{p = 1}^{p}\quad {{pi}_{\alpha}^{p - 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {i_{\beta}^{q} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{G_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {H_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\ldots}}}}}}}} \\ {{{+ \left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{\beta}} \right)} \right\rbrack} \cdot {\sum\limits_{p = 0}^{p}\quad {i_{\alpha}^{p} \cdot {\sum\limits_{q = 1}^{Q}\quad {{qi}_{\beta}^{q - 1} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{G_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {H_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\ldots}}}}}}}} \\ {{+ {\sum\limits_{p = 0}^{p}\quad {i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {i_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \quad \left( {{G_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} \end{matrix} \\ {{Note}\quad {{that}:}} \end{matrix} \\ {{\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i} \right)} = {{{\frac{1}{\left( {\frac{\quad}{t}\theta} \right)} \cdot \frac{\quad}{t}}i} = {{\left( {\frac{\quad}{\theta}t} \right) \cdot \left( {\frac{\quad}{t}i} \right)} = {\frac{\quad}{\theta}i}}}} \end{matrix} & (16) \end{matrix}$

[0103] This allows a simple re-working of Equation (16) as follows: $\begin{matrix} {\frac{v_{\varphi}}{\omega} = {{\frac{1}{\omega} \cdot R_{\varphi}} + {\frac{i_{\alpha}}{\omega} \cdot R_{\varphi \quad \alpha}} + {\frac{i_{\beta}}{\omega} \cdot R_{\varphi \quad \beta}} + {{\frac{i_{\alpha} \cdot i_{\beta}}{\omega} \cdot R_{\varphi \quad \alpha \quad \beta}}\ldots}}} \\ {{{+ \left( {\frac{\quad}{\theta}i_{\alpha}} \right)} \cdot {\sum\limits_{p = 1}^{p}\quad {{pi}_{\alpha}^{p - 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {i_{\beta}^{q} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{G_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {H_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\ldots}}}}}}}} \\ {{{+ \left( {\frac{\quad}{\theta}i_{\beta}} \right)} \cdot {\sum\limits_{p = 0}^{p}\quad {i_{\alpha}^{p} \cdot {\sum\limits_{q = 1}^{Q}\quad {{qi}_{\beta}^{q - 1} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{G_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {H_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\ldots}}}}}}}} \\ {{+ {\sum\limits_{p = 0}^{p}\quad {i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {i_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \quad \left( {{G_{\varphi \quad {pqn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{\varphi \quad {pqn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} \end{matrix}$

[0104] The advantage of this re-formulation of Equation (16) is that two possible sources of impulsive noise in the equation, and the problems they can cause with a parameter estimator, have been removed. If the driving current forms are assumed known, then their derivatives with respect to angle can be directly calculated. If the current forms are defined in an analytic form, such as from a BEMF model, then a closed expression exists for the derivative else a numerical estimate can be obtained. In particular, if at the (k−1) and k intervals the angle and desired currents are θ(k−1), θ(k), i_(α)(k−1) and i_(α)(k) then: ${\frac{\quad}{\theta}i_{\alpha}} = \frac{{i_{\alpha}(k)} - {i_{\alpha}\left( {k - 1} \right)}}{{\theta (k)} - {\theta \left( {k - 1} \right)}}$

[0105] This approach implicitly assumes the system exhibits good current following properties.

[0106] Since resistance and flux linkage can be estimated via the electrical model, a torque model relating current and angle to torque generated can be derived through a series of standard operations. Very generally, these operations include integrating the flux linkage from zero current to the present value of current—coenergy, and differentiating this expression with respect to shaft angle. The result of these operations is an expression for torque.

[0107] Coenergy (ω_(c)) is defined by: $\begin{matrix} {\omega_{c} = {\int{\sum\limits_{\varphi = 1}^{N_{\varphi}}\quad {\lambda_{\varphi}{i_{\varphi}}}}}} & (17) \end{matrix}$

[0108] where N is the number of stator phases. Thus, for a three-phase switched reluctance motor, N_(φ)=3 (for the a, b, and c stator phases), while for a three phase PM motor N_(φ)=4 (for the three stator phases and the imaginary f rotor phase). Torque is found via coenergy by: $\begin{matrix} {T = {\frac{\partial\quad}{\partial\theta}\omega_{c}}} & (18) \end{matrix}$

[0109] The relationship between the abc-FoR and the αβ FoR is given by: $\begin{pmatrix} i_{\alpha} \\ i_{\beta} \\ i_{0} \end{pmatrix} = {\begin{pmatrix} 1 & 0 & 1 \\ \frac{- 1}{2} & {\frac{- 1}{2} \cdot \sqrt{3}} & 1 \\ \frac{- 1}{2} & {\frac{1}{2} \cdot \sqrt{3}} & 1 \end{pmatrix} \cdot \begin{pmatrix} i_{a} \\ i_{b} \\ i_{c} \end{pmatrix}}$

[0110] The derivatives of the abc FoR currents are related to the αβ-FoR currents by: $\begin{matrix} {{d\quad {\lambda_{a}\left( {i_{\alpha},i_{\beta},i_{f},\theta} \right)}} = {{\frac{\partial\quad}{\partial i_{\alpha}}{\lambda_{a} \cdot {di}_{\alpha}}} + {\frac{\partial\quad}{\partial i_{\beta}}{\lambda_{a} \cdot {di}_{\beta}}} + {\frac{\partial\quad}{\partial i_{f}}{\lambda_{a} \cdot {di}_{f}}}}} & (19) \\ {{d\quad {\lambda_{b}\left( {i_{\alpha},i_{\beta},i_{f},\theta} \right)}} = {{\frac{\partial\quad}{\partial i_{\alpha}}{\lambda_{b} \cdot {di}_{\alpha}}} + {\frac{\partial\quad}{\partial i_{\beta}}{\lambda_{b} \cdot {di}_{\beta}}} + {\frac{\partial\quad}{\partial i_{f}}{\lambda_{b} \cdot {di}_{f}}}}} & (20) \\ {{d\quad {\lambda_{c}\left( {i_{\alpha},i_{\beta},i_{f},\theta} \right)}} = {{\frac{\partial\quad}{\partial i_{\alpha}}{\lambda_{c} \cdot {di}_{\alpha}}} + {\frac{\partial\quad}{\partial i_{\beta}}{\lambda_{c} \cdot {di}_{\beta}}} + {\frac{\partial\quad}{\partial i_{f}}{\lambda_{c} \cdot {di}_{f}}}}} & (21) \\ {{d\quad {\lambda_{f}\left( {i_{\alpha},i_{\beta},i_{f},\theta} \right)}} = {{\frac{\partial\quad}{\partial i_{\alpha}}{\lambda_{f} \cdot {di}_{\alpha}}} + {\frac{\partial\quad}{\partial i_{\beta}}{\lambda_{f} \cdot {di}_{\beta}}} + {\frac{\partial\quad}{\partial i_{f}}{\lambda_{f} \cdot {di}_{f}}}}} & (22) \end{matrix}$

[0111] and

di _(a) =di _(α)  (23)

[0112] $\begin{matrix} {{di}_{b} = {{\frac{- 1}{2} \cdot {di}_{\alpha}} - {\frac{\sqrt{3}}{2} \cdot {di}_{\beta}}}} & (24) \\ {{di}_{c} = {{\frac{- 1}{2} \cdot {di}_{\alpha}} + {\frac{\sqrt{3}}{2} \cdot {di}_{\beta}}}} & (25) \end{matrix}$

 di _(f) =di _(f)  (25)

[0113] Since a switched reluctance machine has no permanent magnets, in the case of a switched reluctance machine Equation (26) is as follows:

[0114] di_(f)≡0

[0115] The expression for coenergy is thus written in the αβ-FoR: $\begin{matrix} {\omega_{c} = {{\int{\lambda_{a}{i_{\alpha}}}} - {\frac{1}{2} \cdot {\int{\lambda_{b}{i_{\alpha}}}}} - {\frac{\sqrt{3}}{2} \cdot {\int{\lambda_{b}{i_{\beta}}}}} - {\frac{1}{2} \cdot {\int{\lambda_{c}{i_{\alpha}}}}} + {\frac{\sqrt{3}}{2} \cdot {\int{\lambda_{c}{i_{\beta}}}}} + {\int{\lambda_{f}{i_{f}}}}}} & (27) \end{matrix}$

[0116] For convenience, the individual integral components of this expression are set equal to D₁, D₂, D₃, D₄, D₅ and D₆, respectively: $\begin{matrix} {\omega_{c} = {D_{1} - {\frac{1}{2} \cdot D_{2}} - {\frac{\sqrt{3}}{2} \cdot D_{3}} - {\frac{1}{2}D_{4}} + {\frac{\sqrt{3}}{2} \cdot D_{5}} + D_{6}}} & (28) \end{matrix}$

[0117] Again, in the particular case of a switched reluctance machine:

[0118] D₆≡0

[0119] For a switched reluctance machine, Equations (27) and (28) therefore reduce to: $\begin{matrix} {\omega_{c} = {{\int{\lambda_{a}{i_{\alpha}}}} - {\frac{1}{2} \cdot {\int{\lambda_{b}{i_{\alpha}}}}} - {\frac{\sqrt{3}}{2} \cdot {\int{\lambda_{b}{i_{\beta}}}}} - {\frac{1}{2} \cdot {\int{\lambda_{c}{i_{\alpha}}}}} + {\frac{\sqrt{3}}{2} \cdot {\int{\lambda_{c}{i_{\beta}}}}}}} & (29) \\ {\omega_{c} = {D_{1} - {\frac{1}{2} \cdot D_{2}} - {\frac{\sqrt{3}}{2} \cdot D_{3}} - {\frac{1}{2}D_{4}} + {\frac{\sqrt{3}}{2} \cdot D_{5}}}} & (30) \end{matrix}$

[0120] Next, an integral path is selected. To this end, an integral path consisting of three directed line segments (DLS) is defined over which to evaluate the integral giving coenergy. For the purposes of this disclosure, the dummy variable of integration is ξ while phase current variables (i_(a),i_(b),i_(c),i_(α),i_(β)) are in lower case. Their associated final values, with respect to path integrals, are (I_(a),I_(b),I_(c),I_(α),I_(β)).

[0121] Directed line segment one:

[0122] i_(α)=0 di_(α)=0

[0123] i_(β)=0 di_(β)=0

[0124] i_(f) is the variable of integration, ranging from 0 to I_(f).

[0125] Directed line segment two:

[0126] i_(α)=0 di_(α)=0

[0127] i_(β) is the variable of integration, ranging from 0 to I_(β)

[0128] i_(f)=I_(f) di_(f)=0

[0129] Directed line segment three:

[0130] i_(α) is the variable of integration, ranging from 0 to I_(α)

[0131] i_(β)=I_(β) di_(β)=0

[0132] i_(f)=I_(f) di_(f)=0

[0133]FIG. 3 illustrates an integration path defined as a sequence of directed line segments 51, 52, 53.

[0134] Each of the integrals D₁-D₆ are then evaluated over the selected path. Evaluating D₁:,

D ₁=∫λ_(a) di _(α)

[0135] This is identically zero over all but the third DLS, hence: $\begin{matrix} \begin{matrix} \begin{matrix} {D_{1} = {\int_{0}^{I_{\alpha}}{\sum\limits_{p = 0}^{P}\quad {\xi^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{g_{apqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{apqrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){\xi}}}}}}}}}}} \\ {{{yielding}:}\quad} \end{matrix} \\ {\quad {D_{1} = {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{apqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {{h_{apqrn} \cdot \cos}\left( {n \cdot \theta} \right)}} \right)}}}}}}}}\quad} \end{matrix} & (31) \end{matrix}$

[0136] Evaluating D₂:

D ₂=∫λ_(b) di _(α)

[0137] This is also identically zero over all but the third directed line segment. $\begin{matrix} \begin{matrix} \begin{matrix} {D_{2} = {\int_{0}^{I_{\alpha}}{\sum\limits_{p = 0}^{P}\quad {\xi^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{g_{bpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{bpqrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){\xi}}}}}}}}}}} \\ {{{yielding}:}\quad} \end{matrix} \\ {\quad {D_{2} = {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{bpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {{h_{bpqrn} \cdot \cos}\left( {n \cdot \theta} \right)}} \right)}}}}}}}}\quad} \end{matrix} & (32) \end{matrix}$

[0138] Evaluating D₃:

D ₃=∫λ_(b) di _(β)

[0139] This is identically zero over all but the second directed line segment, where all terms other than those where p=0 are zero: $\begin{matrix} \begin{matrix} \begin{matrix} {D_{3} = {\int_{0}^{I_{\beta}}{\sum\limits_{q = 0}^{Q}\quad {\xi^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{g_{b0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{b0qrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){\xi}}}}}}}}} \\ {{{yielding}:}\quad} \end{matrix} \\ {\quad {D_{3} = {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{b0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {{h_{b0qrn} \cdot \cos}\left( {n \cdot \theta} \right)}} \right)}}}}}}\quad} \end{matrix} & (33) \end{matrix}$

[0140] Evaluating D₄:

D ₄=∫λ_(c) di _(α)

[0141] This is identically zero over all but the third directed fine segment, where all terms are zero except for those where p=q=0: $\begin{matrix} \begin{matrix} \begin{matrix} {D_{4} = {\int_{0}^{I_{\alpha}}{\left\lbrack {\sum\limits_{p = 0}^{P}\quad {\xi^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{cpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{cpqrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}} \right\rbrack {\xi}}}} \\ {{{yielding}:}\quad} \end{matrix} \\ {\quad {D_{4} = {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{cpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {{h_{cpqrn} \cdot \cos}\left( {n \cdot \theta} \right)}} \right)}}}}}}}}\quad} \end{matrix} & (34) \end{matrix}$

[0142] Evaluating D₅:

D ₅=∫λ_(c) di _(β)

[0143] This is identically zero over all but the second directed line segment. $\begin{matrix} \begin{matrix} \begin{matrix} {D_{5} = {\int_{0}^{I_{\beta}}{\sum\limits_{q = 0}^{Q}\quad {\xi^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{g_{c0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{c0qrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){\xi}}}}}}}}} \\ {{{yielding}:}\quad} \end{matrix} \\ {\quad {D_{5} = {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{c0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {{h_{c0qrn} \cdot \cos}\left( {n \cdot \theta} \right)}} \right)}}}}}}\quad} \end{matrix} & (35) \end{matrix}$

[0144] Evaluating D₆:

D ₆=∫λ_(f) di _(f)

[0145] This term is identically zero over all but the first directed line segment. $\begin{matrix} \begin{matrix} \begin{matrix} {D_{6} = {\int_{0}^{I_{f}}{\left\lbrack {\sum\limits_{r = 0}^{R}\quad {i_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}} \right\rbrack {\xi}}}} \\ {{{yielding}:}\quad} \end{matrix} \\ {\quad {D_{6} = {\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {{h_{f00rn} \cdot \cos}\left( {n \cdot \theta} \right)}} \right)}}}}\quad} \end{matrix} & (36) \end{matrix}$

[0146] Substituting for D₁, i=1, . . . ,6 into Equation (29): $\begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} {\omega_{c} = {{\left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\left( {{g_{apqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{apqrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}} \right\rbrack \ldots} +}} \\ {{{\frac{- 1}{2} \cdot \left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\left( {{g_{bpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{bpqrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{- \sqrt{3}}{2} \cdot \left\lbrack {\sum\limits_{q = 0}^{Q}{\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\left( {{g_{b0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{b0qrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{- 1}{2} \cdot \left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\left( {{g_{cpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{cpqrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{\sqrt{3}}{2} \cdot \left\lbrack {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\left( {{g_{c0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{c0qrn} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}} \right\rbrack}\ldots} +} \\ {\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}} + {{h_{f00rn} \cdot \cos}\left( {n \cdot \theta} \right)}} \right)}}} \end{matrix} & (37) \end{matrix}$

[0147] Substituting Equation (37) into Equation (18): $\begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} {T = {{\left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{apqrn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{apqrn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} \right\rbrack \ldots} +}} \\ {{{\frac{- 1}{2} \cdot \left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{bpqrn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{bpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{- \sqrt{3}}{2} \cdot \left\lbrack {\sum\limits_{q = 0}^{Q}{\frac{I_{\beta}^{p + 1}}{q + 1} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{b0qrn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{b0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{- 1}{2} \cdot \left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{cpqrn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{cpqrn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{\sqrt{3}}{2} \cdot \left\lbrack {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{f}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{c0qrn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{c0qrn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} \right\rbrack}\ldots} +} \\ {\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}} \end{matrix} & (38) \end{matrix}$

[0148] Using the identities introduced earlier in Equations (12) and (13), Equation (38) is rewritten: $\begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} {T = {{\left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{apqn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{apqn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} \right\rbrack \ldots} +}} \\ {{{\frac{- 1}{2} \cdot \left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{bpqn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{bpqn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{- \sqrt{3}}{2} \cdot \left\lbrack {\sum\limits_{q = 0}^{Q}{\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{b0qn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{b0qn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{- 1}{2} \cdot \left\lbrack {\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{cpqn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{cpqn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} \right\rbrack}\ldots} +} \end{matrix} \\ {{{\frac{\sqrt{3}}{2} \cdot \left\lbrack {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{c0qn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{c0qn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}} \right\rbrack}\ldots} +} \\ {\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}} \end{matrix} & (38) \end{matrix}$

[0149] The electrical model parameters naturally flow from the expression for flux linkage to that for torque. However, for motors employing permanent magnets, additional parameters appear as the electrical model is transformed into the torque model. Physically, these parameters relate to how the magnets on the motor interact with themselves—cogging parameters. It is not mathematically obvious how changes in motor terminal current and voltage, as the motor spins, indicate or measure this behavior. In other words, the cogging parameters are unobservable solely via feedback from the motor terminals as the rotor turns.

[0150] Various methods in accordance with the present invention are available to deal with these unobservable parameters. For example, in one embodiment, the torque model terms with unobservable parameters are grouped together: $\begin{matrix} \begin{matrix} {T = {{\sum\limits_{p = 0}^{p}\quad {\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \begin{bmatrix} {{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} \\ {{+ \left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} +}} \\ {{{\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}\quad {{\frac{\sqrt{3}}{2} \cdot n \cdot \left\lbrack {{\left( {{- G_{b0qn}} + G_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {\left( {H_{b0qn} - H_{c0qn}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}} \right\rbrack}\quad \ldots}}}}\quad +}\quad} \\ {{\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}} \end{matrix} & (39) \end{matrix}$

[0151] For the particular case of a switched reluctance machine these parameters are simply not present (no magnets in the motor construction) and Equation (39) reduces to: $\begin{matrix} \begin{matrix} {T = {{\sum\limits_{p = 0}^{p}\quad {\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \begin{bmatrix} {{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} \\ {{+ \left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} +}} \\ {{\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \quad \frac{\sqrt{3}}{2} \cdot \left\lbrack {{\left( {{- g_{b0qn}} + g_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {\left( {h_{b0qn} - h_{c0qn}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}} \right\rbrack}}}}\quad} \end{matrix} & (40) \end{matrix}$

[0152] The triple and first double summation terms in Equation (39) involve coefficients that are observable through the motor terminals while the second double summation groups those terms that are not observable.

[0153] Cogging torque is measured, directly or indirectly, to provide data used to derive an expression that can be substituted for the unknown grouped terms. For example, by spinning the motor on a test rig (no current applied to the motor windings) and measuring the cogging, a Fourier series can be fitted directly to the test data and this known expression is substituted for the unknown grouped terms. Consider Equation (39) in the particular case when there no current is flowing in the stator phases:

[0154] I_(α)=I_(β)=0

[0155] The grouped unobservable terms from Equation (39) are as follows: $\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}\quad \left( {{g_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}$

[0156] Since I_(f) is nominally constant, the effect of cogging can be modeled by a trigonometric polynomial: $\begin{matrix} {\sum\limits_{n = 1}^{N}\quad \left( {{p_{n} \cdot {\sin \left( {n \cdot \theta} \right)}} + {q_{n} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)} & (41) \end{matrix}$

[0157] The p_(n) and q_(n) parameters are provided by the cogging torque measurement obtained from the unenergized motor. It is then assumed that Equation (41) can replace the unobservable component of the expression for torque in Equation (39), that is: ${\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}\quad {n \cdot \left( {{g_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}} = {\sum\limits_{n = 1}^{N}\quad \left( {{p_{k} \cdot {\sin \left( {n \cdot \theta} \right)}} + {q_{k} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}$

[0158] which yields: $\begin{matrix} \begin{matrix} {T = {{\sum\limits_{p = 0}^{p}\quad {\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \begin{bmatrix} {{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} \\ {{+ \left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} +}} \\ {{{\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \left\lbrack {{\left( {{\frac{- \sqrt{3}}{2} \cdot G_{b0qn}} + {\frac{\sqrt{3}}{2} \cdot G_{c0qn}}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {\left( {{\frac{\sqrt{3}}{2} \cdot H_{b0qn}} - {\frac{\sqrt{3}}{2} \cdot H_{c0qn}}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}} \right\rbrack}\quad \ldots}}}}\quad +}\quad} \\ {{\sum\limits_{r = 1}^{N}\left( {{p_{k} \cdot {\sin \left( {n \cdot \theta} \right)}} + {q_{k} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}} \end{matrix} & (42) \end{matrix}$

[0159] Other techniques in accordance with the invention use an indirect measurement of cogging torque. This generally involves three steps. First, during commissioning, the motor is spun at speed unloaded (free shaft) at one or more speeds. Since there is no load applied to the motor shaft, the motor current is minimal. A simple linear voltage model (for example, including only phase currents and BEMF components—the α and β currents appear independent and to the first power only) of the motor is fitted from the voltage, current and shaft sensor information. The linear model will predict the operation of the motor at light loads quite accurately. Next, the torque model for the motor is derived as described previously from the linear voltage motor. The torque model will predict the output torque of the motor at light loads quite accurately.

[0160] In an alternative method, during commissioning, the motor is spun at speed unenergized and the terminal voltage is measured. Using this data, part of the complete motor model, the BEMF component, can be fitted. Using the same method as that for the complete model, a torque model can be created from this partial electrical model. The resultant model does not fully describe how the motor generates torque over the full current range, but for small values of current it is reasonably accurate.

[0161] The motor is then controlled so that position is maintained. That is, the controller energizes the windings until the motor holds a demanded position, against the cogging torque (it is assumed that no other load is applied—the motor is operating free shaft). Knowing a relatively accurate torque model for these low current ranges, the value of cogging torque at any particular angle can now be calculated. In this way, by repeating the above process over a full revolution, data can be collected concerning the cogging model. A Fourier series, for example, can be fitted, a look-up table can be created, etc., as previously and this is used in place of those terms in the torque model that involves unobservable parameters.

[0162] For numerical reasons it is desirable that the αβ-FoR currents are normalized so that they lie in the closed interval [−1,1]. This process is best understood by considering Equation (1): $\begin{matrix} {\lambda_{\varphi} = {\sum\limits_{p = 0}^{p}\quad {i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {i_{f}^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} & (1) \end{matrix}$

[0163] Assuming flux is directly measured and that measured currents are normalized using some scale factor I, then Equation (1) becomes: $\begin{matrix} {\lambda_{\varphi} = {\sum\limits_{p = 0}^{p}\quad {\left( \frac{i_{\alpha}}{I} \right)^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {\left( \frac{i_{\beta}}{I} \right)^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\left( \frac{i_{f}}{I} \right)^{r} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} & (43) \end{matrix}$

[0164] The corresponding voltage equation is given by: $\begin{matrix} \begin{matrix} {v_{\varphi} = {R_{\varphi} + {\frac{i_{\alpha}}{I} \cdot R_{\varphi \quad \alpha}} + {\frac{i_{\beta}}{I} \cdot R_{\varphi \quad \beta}} + {{\frac{i_{\alpha}}{I} \cdot \frac{i_{\beta}}{I} \cdot R_{\varphi \quad \alpha \quad \beta}}\quad \ldots} +}} \\ {{{\sum\limits_{p = 1}^{p}{\left\lbrack {p\quad {\left( \frac{i_{\alpha}}{I} \right)^{p - 1} \cdot \frac{\quad}{t}}\quad \left( \frac{i_{\alpha}}{I} \right)} \right\rbrack \cdot {\sum\limits_{q = 0}^{Q}\quad {\left( \frac{i_{\beta}}{I} \right)^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\left( \frac{i_{f}}{I} \right)^{r} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}\quad +}} \\ {{{\sum\limits_{p = 0}^{p}\quad {{\left( \frac{i_{\alpha}}{I} \right)^{p} \cdot \underset{q = 1}{\overset{Q}{\sum\left\lbrack q \right.}}}\quad {\left( \frac{i_{\beta}}{I} \right)^{q - 1} \cdot \frac{\quad}{t}}\quad \left( \frac{i_{\beta}}{I} \right){\underset{r = 0}{\overset{R}{\rbrack\sum}}\quad \left( \frac{i_{f}}{I} \right)^{r} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{g_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}} +}} \\ {{\sum\limits_{p = 0}^{p}\quad {\left( \frac{i_{\alpha}}{I} \right)^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {\left( \frac{i_{\beta}}{I} \right)^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\left( \frac{i_{f}}{I} \right)^{r} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \quad \left( {{g_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}} \end{matrix} & (44) \end{matrix}$

[0165] Terms such as $\frac{\quad}{t}\left( \frac{i_{\alpha}}{I} \right)$

[0166] correspond to the derivative of the normalized current. Two further equations of interest referenced earlier are those relating flux to coenergy and coenergy to torque: $\begin{matrix} {\omega_{c} = {\int{\sum\limits_{\varphi = 1}^{N_{\varphi}}{\lambda_{\varphi}{i_{\varphi}}}}}} & (17) \\ {T = {\frac{\partial\quad}{\partial\theta}\omega_{c}}} & (18) \end{matrix}$

[0167] The integral in Equation (17) is with respect to true current measurement. From this, if the torque equation is evaluated using normalized current then true torque value is obtained my multiplying by the scaling factor I.

[0168] The torque model is used by the solver 34 to calculate appropriate currents for smooth torque with zero angle sensitivity. Over a single revolution of the shaft, the torque levels calculated may be such as to reject some disturbance. Further, as discussed above, errors in position measurement degrade performance, and the performance tends to rapidly deteriorate with errors in angular measurement. To achieve smooth torque with zero, or at least reduced sensitivity to angular measurement, a solution is derived that considers the change in torque with respect to angle, then minimizes this variance. First, a set of nonlinear equations are solved. For N functional relationships involving variables x_(i), i=1, . . . ,N:

F _(i)(x ₁ ,x ₂ , . . . ,x _(N))=0 i=1, . . . ,N  (45)

[0169] Adopting vector notation and expanding the functions F_(i) using the Taylor series: $\begin{matrix} {{F_{i}\left( {x + {\delta \quad x}} \right)} = {{F_{i}(x)} + {\sum\limits_{j = 1}^{N}{\frac{\partial\quad}{\partial x_{j}}{F_{i} \cdot \delta}\quad x_{j}}} + {O\left( {\delta \quad x^{2}} \right)}}} & (46) \end{matrix}$

[0170] The Jacobian is written: $\begin{matrix} {J_{ij} = {\frac{\partial\quad}{\partial x_{j}}F_{i}}} & (47) \end{matrix}$

[0171] Then:

F(x+δx)=F(x)+J·δx+O(δx ²)  (48)

[0172] From this, a set of linear equations is obtained:

J·δx _(new) =−F  (49)

[0173] Solving the linear equation above yields:

x _(new) =x _(old) +δx _(new)  (50)

[0174] In this particular case, the non-linear equations are for torque and zero sensitivity with respect to angle condition.

[0175] In the problem under discussion, while the Jacobian matrix will generally be small (two by two or three by three) there is little computational cost in calculating the inverse. However, there is significant overhead in calculating the individual elements of the Jacobian. One way to reduce the cost of computing is to keep the Jacobian constant for some number of iterations p>1. Such a technique (cyclic updating of the Jacobian matrix) offsets the reduction in computational cost with a deterioration in convergence rate for the solution. There are also multi-dimensional secant-type methods that avoid the explicit calculation of the Jacobian through the use of multi-dimensional finite differencing.

[0176] With the method described above, the initial guess to the solution has to be reasonably close because global convergence is not guaranteed. This typically is not problematical while searching for solutions for PM motors but may be so for switched reluctance motors. One possible solution is to examine the use of quasi-Newton methods, which possess global convergence properties, possibly with a restart scheme.

[0177] Torque may be calculated via coenergy using Equation (39), repeated as follows: $\begin{matrix} {T = {{\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \begin{bmatrix} {{{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} + {\sum\limits_{q = 0}^{Q}{\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{\frac{\sqrt{3}}{2} \cdot n \cdot \left\lbrack {{\left( {{- G_{b0qn}} + G_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {\left( {H_{b0qn} - H_{c0qn}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}} \right\rbrack}\quad \ldots}}}} + {\sum\limits_{r = 0}^{R}{\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} & (39) \end{matrix}$

[0178] Ignoring the unobservable parameters and re-arranging Equation (39) yields: $\begin{matrix} {0 = {{\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \begin{bmatrix} {{{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\quad \ldots}}}}}} + {\sum\limits_{q = 0}^{Q}{\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{\frac{\sqrt{3}}{2} \cdot n \cdot \left\lbrack {{\left( {{- G_{b0qn}} + G_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {{\left( {H_{b0qn} - H_{c0qn}} \right) \cdot \sin}\left( {n \cdot \theta} \right)}} \right\rbrack}}}} - T}} & (51) \end{matrix}$

[0179] The necessary partial derivatives or entries to the Jacobian, with respect to i_(α) and i_(β), can now be derived. $\begin{matrix} {{\frac{\partial\quad}{\partial i_{\alpha}}{T\left( {i_{\alpha},i_{\beta},\theta} \right)}} = {\sum\limits_{p = 0}^{P}{I_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \begin{bmatrix} {{{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}}}}}}} & (52) \\ {{{\frac{\partial\quad}{\partial i_{\beta}}{T\left( {i_{\alpha},i_{\beta},\theta} \right)}} = {{\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}{{qI}_{\beta}^{q - 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \begin{bmatrix} {{{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\quad \ldots}}}}}} + {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{\frac{\sqrt{3}}{2} \cdot n \cdot \begin{bmatrix} {{{\left( {{- G_{b0qn}} + G_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {H_{apqn} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}}}}}}{{Hence}:}} & (53) \\ {{J_{11} = {\sum\limits_{p = 0}^{P}{I_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \begin{bmatrix} {{{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}}}}}}}\quad} & (54) \\ {J_{11} = {{\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}{{qI}_{\beta}^{q - 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \begin{bmatrix} {{{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\quad \ldots}}}}}} + {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{\frac{\sqrt{3}}{2} \cdot n \cdot \left\lbrack {{\left( {{- G_{b0qn}} + G_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {{\left( {H_{b0qn} - H_{c0qn}} \right) \cdot \sin}\left( {n \cdot \theta} \right)}} \right\rbrack}}}}}} & (55) \end{matrix}$

[0180] Regarding zero angular sensitivity, sensitivity with respect to angle is given by: $\begin{matrix} {\frac{\partial\quad}{\partial\theta}T} & (56) \end{matrix}$

[0181] From Equation (39): $\begin{matrix} {{\frac{\partial\quad}{\partial\theta}T} = {{\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \left\lbrack \quad \begin{matrix} {{{{- \left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} \end{matrix}\quad \right\rbrack}\quad \ldots}}}}}} + {\sum\limits_{q = 0}^{Q}{\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \frac{\sqrt{3}}{2} \cdot \begin{bmatrix} {{{{- \left( {{- G_{b0qn}} + G_{c0qn}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {H_{b0qn} - H_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} \end{bmatrix}}{{Hence}:}}}}}}} & (57) \\ {{J_{21} = {\frac{\partial\quad}{\partial i_{\alpha}}\frac{\partial\quad}{\partial\theta}T}}{{and}:}} & (58) \\ {J_{22} = {\frac{\partial\quad}{\partial i_{\beta}}\frac{\partial\quad}{\partial\theta}T}} & (59) \end{matrix}$

[0182] By changing the order of the partial derivatives, in Equations (58) and (59): $\begin{matrix} {J_{21} = {\frac{\partial\quad}{\partial\theta}J_{11}}} & (60) \\ {J_{22} = {\frac{\partial\quad}{\partial\theta}J_{12}}} & (61) \end{matrix}$

[0183] As noted above, cogging torque cannot be estimated using data available solely from the motor terminals. The cogging model discussed above can be incorporated directly into the solver 34. Recall that the observable and unobservable torque model terms were grouped together in Equation (39). If total motor torque is separated into torque estimated via terminal variables (T_(tv)) and cogging torque (T_(cog)), then:

T=T _(tv) +T _(cog)  (62)

[0184] and $\begin{matrix} {{\frac{\partial\quad}{\partial\theta}T} = {{\frac{\partial\quad}{\partial\theta}T_{tv}} + {\frac{\partial\quad}{\partial\theta}T_{cog}}}} & (63) \end{matrix}$

[0185] Considering T_(cog) as solely a function of angle (representing the angle dependant but current independent cogging) in terms of a Fourier series: $\begin{matrix} {{\frac{\partial\quad}{\partial i_{\alpha}}T_{cog}} = {{\frac{\partial\quad}{\partial i_{\beta}}T_{cog}} = 0}} & (64) \\ {{\frac{\partial\quad}{\partial i_{\alpha}}\left( {\frac{\partial\quad}{\partial\theta}T_{cog}} \right)} = {{\frac{\partial\quad}{\partial i_{\beta}}\left( {\frac{\partial\quad}{\partial\theta}T_{cog}} \right)} = 0}} & (65) \end{matrix}$

[0186] From Equations (64) and (65) it is seen that there is no effect upon the calculation of the Jacobian matrix, see Equation (39) and Equations (51) to (61). The only effect is upon the calculation of true torque (T) and its partial derivative with respect to angle, or the sensitivity. Recall Equation (39): $\begin{matrix} {T = {{\sum\limits_{p = 0}^{p}\quad {\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \begin{bmatrix} {{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} \\ {{+ \left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} +}} \\ {{{\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}\quad {n{\frac{\sqrt{3}}{2} \cdot \left\lbrack {{\left( {{- G_{b0qn}} + G_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {\left( {H_{b0qn} - H_{c0qn}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}} \right\rbrack}\quad \ldots}}}}\quad +}\quad} \\ {{\sum\limits_{r = 0}^{R}\quad {\frac{I_{f}^{r}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{f00rn} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{f00rn} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}} \end{matrix}$

[0187] If, as mentioned previously, T_(cog) is treated as a function of mechanical angle via a Fourier series: $\begin{matrix} {{T_{cog}(\theta)} = {\sum\limits_{n = 1}^{N_{c}}\quad \left( {{a_{n} \cdot {\sin \left( {n \cdot \theta} \right)}} + {b_{n} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}} & (66) \end{matrix}$

[0188] then Equation (39) yields: $\begin{matrix} \begin{matrix} {T = {{\sum\limits_{p = 0}^{p}\quad {\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \begin{bmatrix} {{\left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} \\ {{+ \left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} +}} \\ {{{\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}\quad {{\frac{\sqrt{3}}{2} \cdot n \cdot \left\lbrack {{\left( {{- G_{b0qn}} + G_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} + {\left( {H_{b0qn} - H_{c0qn}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}} \right\rbrack}\quad \ldots}}}}\quad +}\quad} \\ {{\sum\limits_{n = 1}^{N_{c}}\left( {{a_{n} \cdot {\sin \left( {n \cdot \theta} \right)}} + {b_{n} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}} \end{matrix} & (67) \end{matrix}$

[0189] True sensitivity is then the partial derivative with respect to angle of the expression for torque presented in Equation (67), see Equation (57): $\begin{matrix} \begin{matrix} {S_{a} = {{\sum\limits_{p = 0}^{p}\quad {\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}\quad {{n^{2} \cdot \begin{bmatrix} {{{- \left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}}\quad \ldots} \\ {{+ \left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right)} \cdot {\cos \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} +}} \\ {{{\sum\limits_{q = 0}^{Q}\quad {\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}\quad {{\frac{\sqrt{3} \cdot n^{2}}{2} \cdot \left\lbrack {{{- \left( {{- G_{b0qn}} + G_{c0qn}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}} + {\left( {H_{b0qn} - H_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}} \right\rbrack}\quad \ldots}}}}\quad +}\quad} \\ {{\sum\limits_{n = 1}^{N_{c}}{n \cdot \left( {{a_{n} \cdot {\cos \left( {n \cdot \theta} \right)}} - {b_{n} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}} \end{matrix} & (68) \end{matrix}$

[0190] To this point it has been assumed that the smooth torque solution is achieved in a point by point manner. An alternative approach is to calculate the solution across the angle intervals in the interval (0,2π) simultaneously. For convenience, the following nomenclature is introduced. Suppose for a particular torque and sensitivity demand the solution is to be calculated at various angles:

θ(k) for all k=1, . . . ,N

[0191] The current column vector is given by: $\begin{matrix} {I = \begin{pmatrix} {i_{\alpha}\left( {\theta (1)} \right)} \\ {i_{\alpha}\left( {\theta (2)} \right)} \\ \cdots \\ {i_{\alpha}\left( {\theta (N)} \right)} \\ {i_{\beta}\left( {\theta (1)} \right)} \\ {i_{\beta}\left( {\theta (2)} \right)} \\ \cdots \\ {i_{\beta}\left( {\theta (N)} \right)} \end{pmatrix}} & (69) \end{matrix}$

[0192] If the new

I(n+1)=I(n)+Δ(n)  (70)

[0193] The k^(th) torque vector is a row vector defined by:

φ_(Tk)=(0 . . . 0T (θ( k),i _(α)(k),i_(β)(k))0 . . . 0)

[0194] Similarly, the k'th sensitivity vector is defined by:

φ_(Sk)=(0 . . . 0S(θ(k),i _(α)(k),i _(β)(k))0 . . . 0)

[0195] These vectors can be stacked to form diagonal matrices: $\begin{matrix} {A = \begin{pmatrix} \varphi_{T1} \\ \cdots \\ \varphi_{TN} \end{pmatrix}} & {B = \begin{pmatrix} \varphi_{S1} \\ \cdots \\ \varphi_{SN} \end{pmatrix}} \end{matrix}$

[0196] Finally, appropriate partial derivatives with respect to the currents are taken and the resultant matrices aggregated to form a 2N by 2N matrix: $\begin{matrix} {\Phi = \begin{pmatrix} {\frac{\partial\quad}{\partial i_{\alpha}}A\frac{\partial\quad}{\partial i_{\beta}}A} \\ {\frac{\partial\quad}{\partial i_{\alpha}}B\frac{\partial\quad}{\partial i_{\beta}}B} \end{pmatrix}} & (71) \end{matrix}$

[0197] The desired torque and sensitivity at a particular angle θ(k) are given by:

T(θ(k)) S(θ(k))

[0198] The 2N×1 demand vector D of these values over the angle range is given by: $\begin{matrix} {D = \begin{pmatrix} {T_{d}\left( {\theta (1)} \right)} \\ {T_{d}\left( {\theta (2)} \right)} \\ \cdots \\ {T_{d}\left( {\theta (N)} \right)} \\ {S_{d}\left( {\theta (1)} \right)} \\ \cdots \\ {S_{d}\left( {\theta (1)} \right)} \end{pmatrix}} & (72) \end{matrix}$

[0199] and the actual values of torque and sensitivity resultant from any current combination (i_(α),i_(β)) which constitute the iterated solution are given by the column vector: $\begin{matrix} {A = \begin{pmatrix} {T\left( {{\theta (1)},{i_{\alpha}(1)},{i_{\beta}(1)}} \right)} \\ {T\left( {{\theta (2)},{i_{\alpha}(2)},{i_{\beta}(2)}} \right)} \\ \cdots \\ {T\left( {{\theta (N)},{i_{\alpha}(N)},{i_{\beta}(N)}} \right)} \\ {S\left( {{\theta (1)},{i_{\alpha}(1)},{i_{\beta}(1)}} \right)} \\ \cdots \\ {S\left( {{\theta (N)},{i_{\alpha}(N)},{i_{\beta}(N)}} \right)} \end{pmatrix}} & (73) \end{matrix}$

[0200] Using this notation and from the development initially presented:

Δ(n)=Φ⁻¹·(D−A)  (74)

[0201] with:

I(n+1)=I(n)+Δ(n)

[0202] Starting from a reasonable guess, three to fifteen iterations is typically sufficient when dealing with a PM motor. As in the switched reluctance motor case previously, issues of convergence becomes critical. Typical seed values for the PM motor are usually chosen to lie upon a sine wave generated with some harmonic appropriate to the machine in question. Hence, in the unstacked version of the solver: $\begin{pmatrix} i_{\alpha} \\ i_{\beta} \end{pmatrix} = \begin{pmatrix} 0.2 \\ {- 0.2} \end{pmatrix}$

[0203] In the stacked version this expression is replaced with sine feeds of the appropriate magnitude and harmonic, for example, five in a 12-10 PM motor.

[0204] An alternative to approach to that outlined above is to view the problem as a constrained non-linear optimization task with respect to the alpha beta currents for each angle:

[0205] ${\frac{\partial\quad}{\partial\theta}{T\left( {i_{\alpha},i_{\beta},{\theta (k)}} \right)}} = 0$

 T(i _(α) ,i _(β),θ(k))=T _(demand)

MIN(i _(α) ² +i _(β) ²)

[0206] Such a problem is a particular case of that described in Sensitivity of Automatic Control Systems by Rosenwasser and Yusupov (CRC Press, 1999).

[0207] In some cases where cogging frequencies are high, the resultant current profiles may prove difficult to follow. Of course, increasingly complex and expensive drives can provide better current profile following capabilities. In practice, a reasonable balance between cost and current following capabilities is required. One solution is the removal of the higher harmonic terms from all the sensitivity expressions presented throughout this disclosure. In particular, consider the expression presented in Equation (71). If the higher harmonic terms are ignored, above N_(t), then: $\begin{matrix} {S_{a} = {{\sum\limits_{p = 0}^{P}{\frac{I_{\alpha}^{p + 1}}{p + 1} \cdot {\sum\limits_{q = 0}^{Q}{I_{\beta}^{q} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \begin{bmatrix} {{{{- \left( {G_{apqn} - \frac{G_{bpqn}}{2} - \frac{G_{cpqn}}{2}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {\left( {{- H_{apqn}} + \frac{H_{bpqn}}{2} + \frac{H_{cpqn}}{2}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}} \end{bmatrix}}\ldots}}}}}} + {\sum\limits_{q = 0}^{Q}{\frac{I_{\beta}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{\frac{\sqrt{3} \cdot n^{2}}{2} \cdot \left\lbrack {{{- \left( {{- G_{b0qn}} + G_{c0qn}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}} + {\left( {H_{b0qn} - H_{c0qn}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}} \right\rbrack}\quad \ldots}}}} + {\sum\limits_{n = 1}^{N_{t}}{n \cdot \left( {{a_{n} \cdot {\cos \left( {n \cdot \theta} \right)}} - {b_{n} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}} & (75) \end{matrix}$

[0208] Typically the cut-off harmonic will be in the range 35 to 40. This will result in smoother current profiles, which in the presence of error in angular precision, will introduce higher frequency torque ripple somewhat more quickly than would otherwise be the case.

[0209] If balanced feed is not used, it is necessary to use the abc-FoR. As with the αβ-FoR discussion above, the following disclosure is generally provided in terms of a three phase hybrid motor, though the model form can be generalized into different types of rotating machines having any number of phases by one skilled in the art having the benefit of this disclosure. For notational convenience, the abc-stator phases are represented by “1,” “2” and “3” subscripts, while the single rotor phase is represented by a “4” subscript.

[0210] The general form of the flux linkage model in the abc-FoR is given by: $\begin{matrix} {{\lambda_{\varphi}\left( {i_{1},i_{2},i_{3},i_{4},\theta} \right)} = {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}} & (76) \end{matrix}$

[0211] Equation (4) provides the known equation: $\begin{matrix} {v_{\varphi} = {{i_{\varphi} \cdot R_{\varphi}} + {\frac{\quad}{t}\lambda_{\varphi}}}} & (4) \end{matrix}$

[0212] From Equation (76): $\begin{matrix} {{\frac{\quad}{t}\lambda_{\varphi}} = {{\sum\limits_{p = 0}^{P}{p \cdot i_{1}^{p - 1} \cdot \left( {\frac{\quad}{t}i_{1}} \right) \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{{qi}_{2}^{q - 1} \cdot \left( {\frac{\quad}{t}i_{2}} \right) \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{{i_{2}^{q} \cdot \underset{r = 0}{\overset{R}{\sum{r \cdot}}}}{i_{3}^{r - 1} \cdot \left( {\frac{\quad}{t}i_{3}} \right) \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{{si}_{4}^{s - 1} \cdot \left( {\frac{\quad}{t}i_{4}} \right) \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}}} & (77) \end{matrix}$

[0213] Substituting Equation (77) into Equation (4): $\begin{matrix} {{v_{\varphi} = {{i_{\varphi} \cdot R_{\varphi}} + {\sum\limits_{p = 0}^{P}{p \cdot i_{1}^{p - 1} \cdot \left( {\frac{\quad}{t}i_{1}} \right) \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{p = 0}^{P}{{i_{1}^{p} \cdot \underset{q = 0}{\overset{Q}{\sum q}}}{i_{2}^{q - 1} \cdot \left( {\frac{\quad}{t}i_{2}} \right) \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{{i_{2}^{q} \cdot \underset{r = 0}{\overset{R}{\sum{r \cdot}}}}{i_{3}^{r - 1} \cdot \left( {\frac{\quad}{t}i_{3}} \right) \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{{si}_{4}^{s - 1} \cdot \left( {\frac{\quad}{t}i_{4}} \right) \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}}}\quad} & (78) \end{matrix}$

[0214] As noted herein above, in the particular case of a switched reluctance motor:

[0215] i_(f)≡0 and $\begin{matrix} {{\frac{\quad}{t}i_{f}} \equiv 0} & (9) \end{matrix}$

[0216] Page 53 of 84

[0217] So in the case of a switched reluctance motor, Equation (78) yields $\begin{matrix} {{v_{\varphi} = {{i_{\varphi} \cdot R_{\varphi}} + {\sum\limits_{p = 0}^{P}{p \cdot i_{1}^{p - 1} \cdot \left( {\frac{\quad}{t}i_{1}} \right) \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}} + {\sum\limits_{p = 0}^{P}{{i_{1}^{p} \cdot \underset{q = 0}{\overset{Q}{\sum q}}}{i_{2}^{q - 1} \cdot \left( {\frac{\quad}{t}i_{2}} \right) \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{{i_{2}^{q} \cdot \underset{r = 0}{\overset{R}{\sum{r \cdot}}}}{i_{3}^{r - 1} \cdot \left( {\frac{\quad}{t}i_{3}} \right) \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}} + {\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}\quad} & (79) \end{matrix}$

[0218] Recall from Equations (17) and (18), coenergy and torque are found using the expressions: $\begin{matrix} {\omega_{c} = {\int{\sum\limits_{\varphi = 1}^{4}{\lambda_{\varphi}{i_{c\quad }}}}}} & (17) \\ {T = {\frac{\partial\quad}{\partial\theta}\omega_{c}}} & (18) \end{matrix}$

[0219] Any reasonable integral path can be selected; in certain embodiments four directed line segments are used:

[0220] Variable of integration i₄ di₄≠C i₁,i₂,i₃,di₁,di₂,di₃=C

[0221] Variable of integration i₁ di₁≠C i₄=I₄ i₂,i₃,di₂,di₃,di₄=C

[0222] Variable of integration i₂ di₂≠C i₄=I₄ i₁=I₁ i₃,di₁,di₃,di₄=C

[0223] Variable of integration i₃ di₃≠C i₄=I₄ i₁=I₁ i₂=I₂ di₁,di₂,di₄=C

[0224] This path is selected to minimize the number of unobservable parameters appearing in the final expression for torque.

[0225] The integrals are then evaluated over the selected path. Substituting Equation (76) into Equation (17): $\begin{matrix} {\omega_{c} = {\int{\left\lbrack {\sum\limits_{\varphi = 1}^{4}{\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot \quad {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}} \right\rbrack {i_{c\quad }}}}} & (80) \end{matrix}$

[0226] For notational convenience, this integral is re-written: $\begin{matrix} {\omega_{c} = {\sum\limits_{\varphi = 1}^{4}F_{c\quad }}} & (81) \end{matrix}$

[0227] where, for φ=1, . . . ,4: $\begin{matrix} {F_{\varphi} = {\int{\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){i_{c\quad }}}}}}}}}}}}}} & (82) \end{matrix}$

[0228] In the particular case of a switched reluctance machine (no permanent magnets) there is no associated stator phase: $\begin{matrix} {{F_{\varphi} = {{\int{\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){i_{c\quad }}\quad \varphi}}}}}}}}} = 1}},2,3.} & \quad \end{matrix}$

[0229] Integral One (F₁): $F_{1} = {\int{\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{1{pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{1{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){i_{1}}}}}}}}}}}$

[0230] This is identically zero over all but the second DLS, where:

[0231] i₄=I₄ i₁,i₂,i₃=C di₂,d₃,d₄=C

[0232] hence: $\begin{matrix} {{F_{1} = {\int_{0}^{I_{1}}{\sum\limits_{p = 0}^{P}{\xi^{p} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{1{p00sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{1{p00sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){\xi}}}}}}}}}{{yielding}:}} & \quad \\ {F_{1} = {\sum\limits_{p = 0}^{P}{\frac{I_{1}^{p + 1}}{p + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}\left( {{g_{1{p00sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{1{p00sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}} & (83) \end{matrix}$

[0233] Integral Two (F₂): $F_{2} = {\int{\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{2{pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{2{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){i_{2}}}}}}}}}}}}}$

[0234] This is identically zero along all but the third DLS, where:

[0235] i₄=I₄ i_(i)=I₁ i₁,i₃=C di₁,di₃,di₄=C

[0236] hence: $\begin{matrix} {{F_{2} = {\int_{0}^{I_{2}}{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{\xi^{q} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{2{pq0sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{2{pq0sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){\xi}}}}}}}}}}}{{yielding}:}} & \quad \\ {F_{2} = {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}\left( {{g_{2{pq0sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{2{pq0sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} & (84) \end{matrix}$

[0237] Integral Three (F₃): $F_{3} = {\int{\sum\limits_{p = 0}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{3{pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){i_{3}}}}}}}}}}}}}$

[0238] This is identically zero along all but the fourth DLS, where:

[0239] i₄=I₄ i_(i)=I₁ i₂=I₂ di₁,di₂,di₄=C

[0240] hence: $\begin{matrix} {{F_{3} = {\int_{0}^{I_{3}}{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{\xi^{r} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{3{pqsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){\xi}}}}}}}}}}}}}{{yielding}:}} & \quad \\ {F_{3} = {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}\left( {{g_{3{pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}} & (85) \end{matrix}$

[0241] Integral Four (F₄): $F_{4} = {\int{\sum\limits_{p = 0}^{P}{i_{1^{p}} \cdot {\sum\limits_{q = 0}^{Q}{i_{2^{q}} \cdot {\sum\limits_{r = 0}^{R}{i_{3^{r}} \cdot {\sum\limits_{s = 0}^{S}{i_{4^{s}} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{4{pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{4{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right){i_{4}}}}}}}}}}}}}$

[0242] This is identically zero along all but the first DLS, where:

[0243] i₁,i₂,i₃,di₁,di₂,di₃=C $\begin{matrix} {{\left. {F_{4} = {{\int_{0}^{I_{f}}{\sum\limits_{s = 0}^{S}{\xi^{s} \cdot {\underset{n = 1}{\overset{N}{\sum(}}{g_{4000{sn}} \cdot {\sin \left( {n \cdot \theta} \right)}}}}}} + {h_{4000{sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}}} \right){\xi}}{{yielding}:}} & \quad \\ {F_{4} = {\sum\limits_{s = 0}^{S}{\frac{I_{f}^{s + 1}}{s + 1} \cdot {\sum\limits_{n = 1}^{N}\left( {{{g_{4000{sn}} \cdot \sin}\quad \left( {n \cdot \theta} \right)} + {h_{4000{sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}} & (86) \end{matrix}$

[0244] Substituting Equations (83) to (86) into Equation (81) results in the expression: $\begin{matrix} {\omega_{c} = {{\sum\limits_{p = 0}^{P}{\frac{I_{1}^{p + 1}}{p + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{1{p00sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{1{p00sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}\quad + {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{2{pq0sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{2{pq0sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}} + {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{3{pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{s = 0}^{S}{\frac{I_{f}^{s + 1}}{s + 1} \cdot {\sum\limits_{n = 1}^{N}\left( {{g_{4000{sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{4000{sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}} & (87) \end{matrix}$

[0245] Recalling Equation (18) it is seen that, in the abc-FoR, torque is given by: $\begin{matrix} {T = {{\sum\limits_{p = 0}^{P}{\frac{I_{f}^{p + 1}}{p + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{g_{1{p00sn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{1{p00sn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} + {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{g_{2{pq0sn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{2{pq0sn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}}}}\quad + {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{g_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{3{pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}}}}}}\quad + {\sum\limits_{s = 0}^{S}{\frac{I_{f}^{s + 1}}{s + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{4000{sn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{4000{sn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} & (88) \end{matrix}$

[0246] In the case of a switched reluctance motor: $\begin{matrix} {T = {{\sum\limits_{p = 0}^{P}{\frac{I_{1}^{p + 1}}{p + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{g_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{1{p00n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} + {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{\frac{I_{f}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{g_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} + {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{3{pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{3{pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}} & (89) \end{matrix}$

[0247] Data collection schemes suitable for parameter estimation were addressed above, including exemplary constant phase current and varying phase current schemes. The varying current scheme, which is typical of practical applications, is considered below. Recall Equation (78): $\begin{matrix} {v_{\varphi} = {{i_{\varphi} \cdot R_{\varphi}} + {\sum\limits_{p = 1}^{P}{p \cdot i_{1}^{p - 1} \cdot \left( {\frac{\quad}{t}i_{1}} \right) \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqesn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{{qi}_{2}^{q - 1} \cdot \left( {\frac{\quad}{t}i_{2}} \right) \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}}\quad + {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{r \cdot i_{3}^{r - 1} \cdot \left( {\frac{\quad}{t}i_{3}} \right) \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\omega \cdot n \cdot \left( {{g_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}}} & (78) \end{matrix}$

[0248] Dividing by angular velocity: $\begin{matrix} {\frac{v_{\varphi}}{\omega} = {{\frac{i_{\varphi}}{\omega} \cdot R_{\varphi}} + {\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{1}} \right)} \right\rbrack \cdot {\quad{{\sum\limits_{p = 1}^{P}{p \cdot i_{1}^{p - 1} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}} + {\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{2}} \right)} \right\rbrack \cdot {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{{qi}_{2}^{q - 1} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}}} + {\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{3}} \right)} \right\rbrack \cdot {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{r \cdot i_{3}^{r - 1} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{\left( {{g_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {h_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}}}} + {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{s = 0}^{S}{i_{4}^{s} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{\varphi \quad {pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{\varphi \quad {pqrsn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}}}}}} & (90) \end{matrix}$

[0249] The state variables assigned to the notional rotor phase are not observable via the motor terminals. Hence, the nominally constant rotor current must be lumped in with those model parameters that are observable, as disclosed above with respect to the model formulated for the αβ-FoR. The following identities are defined: $\begin{matrix} {{{\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot g_{\varphi \quad {pqrsn}}}} = {G_{\varphi \quad {pqrn}}\quad {for}\quad {all}\quad p}},{q\quad {and}\quad r}} & (91) \\ {{{\sum\limits_{s = 0}^{S}{I_{4}^{s} \cdot h_{\varphi \quad {pqrsn}}}} = {H_{\varphi \quad {pqrn}}\quad {for}\quad {all}\quad p}},{q\quad {and}\quad r}} & (92) \end{matrix}$

[0250] Using the identities provided by Equations (91) and (92), Equation (90) yields: $\begin{matrix} {\frac{v_{\varphi}}{\omega} = \quad {\frac{i_{\varphi}}{\omega} \cdot {\quad{\quad{R_{\varphi} + {\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{1}} \right)} \right\rbrack \cdot \quad {\sum\limits_{p = 1}^{P}{p \cdot {\quad{i_{1}^{p - 1} \cdot \quad {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{\quad\quad \left( {{G_{\varphi \quad {pqrn}} \cdot \quad {\sin \left( {n \cdot \theta} \right)}} + {\quad{{{H_{\varphi \quad {pqrn}} \cdot \left. \quad{\cos \quad\left( \quad {n \cdot \theta} \right)} \right)}\quad \ldots} + {\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{1}} \right)} \right\rbrack \cdot {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{{qi}_{2}^{q - 1} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{\left( {{G_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {H_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}} + {\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{3}} \right)} \right\rbrack \cdot {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{r \cdot i_{3}^{r - 1} \cdot {\sum\limits_{n = 1}^{N}{\left( {{G_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {H_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}}} + {\sum\limits_{p = 1}^{P}{i_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}}}} \right.}}}}}}}}}}}}}}}} & (93) \end{matrix}$

[0251] Using the identities presented in Equations (91) and (92), Equation (89) is also re-written: $\begin{matrix} {T = {{\sum\limits_{p = 1}^{P}{\frac{I_{1}^{p + 1}}{p + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{1{p00n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} + {\sum\limits_{p = 1}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} + {\sum\limits_{p = 1}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{3{pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}}}} + {\sum\limits_{s = 0}^{S}{\frac{I_{f}^{s + 1}}{s + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{4000{sn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{4000{sn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} & (94) \end{matrix}$

[0252] and in the particular case of a switched reluctance machine: $\begin{matrix} \begin{matrix} \begin{matrix} {T = {{\sum\limits_{p = 0}^{P}{\frac{I_{1}^{p + 1}}{p + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{g_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{1{p00n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} +}} \\ {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{g_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +} \end{matrix} \\ {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {h_{3{pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}\quad} \end{matrix} & (95) \end{matrix}$

[0253] Not all model parameters from the voltage fit are present in the final expressions for torque as a result of the path selected in evaluating the integral.

[0254] The approach implemented by the solver 34 to calculate the required currents to achieve desired motor behavior, such as smooth torque with angle sensitivity minimized, is similar in the abc-FoR as that disclosed above with regard to the αβ-FoR The main difference is that the Jacobian is a three by three matrix with the third row elements being given by some constriction upon the values which the abc-FoR currents may take. For the purposes of the current disclosure, it will be assumed that any solution chosen will in some way minimize the sum of squares of the individual phase currents.

[0255] Suppose torque is calculated via coenergy using the torque model with abc-FoR set out in Equation (88): $\begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} {T = {{\sum\limits_{p = 0}^{P}{\frac{I_{1}^{p + 1}}{p + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{1{p00n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} +}} \\ {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +} \end{matrix} \\ {{{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{3{pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}}}} +}\quad} \end{matrix} \\ {\sum\limits_{s = 0}^{S}\quad {\frac{I_{f}^{s + 1}}{s + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{4000{sn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {{h_{4000{sn}} \cdot \sin}\left( {n \cdot \theta} \right)}} \right)}}}} \end{matrix} & (88) \end{matrix}$

[0256] The necessary partial derivatives or entries to the Jacobian, with respect to i₁,i₂ and i₃, can now be derived. $\begin{matrix} \begin{matrix} \begin{matrix} {{\frac{\partial\quad}{\partial i_{1}}T} = {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \left( {{G_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{1{p00n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} +}} \\ {{\sum\limits_{p = 0}^{P}{p \cdot I_{1}^{p - 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +} \end{matrix} \\ {\sum\limits_{p = 0}^{P}{p \cdot I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {{H_{3{pqrn}} \cdot \sin}\left( {n \cdot \theta} \right)}} \right)}}}}}}}} \end{matrix} & (96) \\ \begin{matrix} {{\frac{\partial\quad}{\partial i_{2}}T} = {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{n = 1}^{N}\quad {{n \cdot \left( {{G_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +}} \\ {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{q \cdot I_{2}^{q - 1} \cdot {\sum\limits_{r = 0}^{R}\quad {\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {{H_{3{pqrn}} \cdot \sin}\left( {n \cdot \theta} \right)}} \right)}}}}}}}} \end{matrix} & (97) \\ {{{\frac{\partial\quad}{\partial i_{3}}T} = {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {{H_{3{pqrn}} \cdot \sin}\left( {n \cdot \theta} \right)}} \right)}}}}}}}}}\quad} & (98) \\ \begin{matrix} \begin{matrix} \begin{matrix} {\quad {{Hence}:}\quad} \\ {J_{11} = {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{1{p00n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} +}} \end{matrix} \\ {{\sum\limits_{p = 1}^{P}{p \cdot I_{1}^{p - 1} \cdot {\sum\limits_{q = 0}^{Q}{\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +} \end{matrix} \\ {{\sum\limits_{p = 1}^{P}{p \cdot I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {{H_{3{pqrn}} \cdot \sin}\left( {n \cdot \theta} \right)}} \right)}}}}}}}}\quad} \end{matrix} & (99) \\ \begin{matrix} {J_{12} = {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{n = 1}^{N}{{n \cdot \left( {{G_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +}} \\ {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{q \cdot I_{2}^{q - 1} \cdot {\sum\limits_{r = 0}^{R}{\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {{H_{3{pqrn}} \cdot \sin}\left( {n \cdot \theta} \right)}} \right)}}}}}}}} \end{matrix} & (100) \\ {{J_{13} = {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {I_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{G_{3{pqrsn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {{H_{3{pqrn}} \cdot \sin}\left( {n \cdot \theta} \right)}} \right)}}}}}}}}}\quad} & (101) \end{matrix}$

[0257] As stated previously in Equation (56), sensitivity with respect to angle is given by: $\begin{matrix} {\frac{\partial\quad}{\partial\theta}T} & (56) \end{matrix}$

[0258] From Equation (88): $\begin{matrix} {{\frac{\partial\quad}{\partial\theta}T} = {{\sum\limits_{p = 0}^{P}{\frac{I_{1}^{p + 1}}{p + 1} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \left( {{{- G_{1{p00n}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} +}} & \quad \\ {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \left( {{{- G_{2{pq0n}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +} & \quad \\ {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \left( {{{- G_{3{pqrsn}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{3{pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}}}} +} & \quad \\ {\sum\limits_{s = 0}^{S}\quad {\frac{I_{f}^{s + 1}}{s + 1} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \left( {{g_{4000{sn}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {h_{4000{sn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}} & {(102)\quad} \end{matrix}$

[0259] Hence, the elements of the second row of the Jacobian are given by the following expressions: $\begin{matrix} {J_{21} = {\frac{\partial\quad}{\partial i_{1}}\frac{\partial\quad}{\partial\theta}T}} & (103) \\ {J_{22} = {\frac{\partial\quad}{\partial i_{2}}\frac{\partial\quad}{\partial\theta}T}} & (104) \\ {J_{23} = {\frac{\partial\quad}{\partial i_{3}}\frac{\partial\quad}{\partial\theta}T}} & (105) \end{matrix}$

[0260] By changing the order of the partial derivatives in Equations (103)-(105): $\begin{matrix} {J_{21} = {\frac{\partial\quad}{\partial\theta}J_{11}}} & (106) \\ {J_{22} = {\frac{\partial\quad}{\partial\theta}J_{12}}} & (107) \\ {J_{23} = {\frac{\partial\quad}{\partial\theta}J_{13}}} & (108) \\ \begin{matrix} \begin{matrix} \begin{matrix} {{Explicitly}:} \\ {J_{21} = {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \left( {{{- G_{1{p00n}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{1{p00n}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}} +}} \end{matrix} \\ {{\sum\limits_{p = 0}^{P}{p \cdot I_{1}^{p - 1} \cdot {\sum\limits_{q = 0}^{Q}\quad {\frac{I_{2}^{q + 1}}{q + 1} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \left( {{{- G_{2{pq0n}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +} \end{matrix} \\ {\sum\limits_{p = 0}^{P}{p \cdot I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}\quad {\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n^{2} \cdot \left( {{{- G_{3{pqrsn}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{3{pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} \end{matrix} & (109) \\ \begin{matrix} {J_{22} = {{\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{n = 1}^{N}{{n^{2} \cdot \left( {{{- G_{2{pq0n}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{2{pq0n}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}\quad \ldots}}}}}} +}} \\ {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{q \cdot I_{2}^{q - 1} \cdot {\sum\limits_{r = 0}^{R}\quad {\frac{I_{3}^{r + 1}}{r + 1} \cdot {\sum\limits_{n = 1}^{N}{n^{2} \cdot \left( {{{- G_{3{pqrsn}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{3{pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}} \end{matrix} & (110) \\ {J_{23} = {\sum\limits_{p = 0}^{P}{I_{1}^{p} \cdot {\sum\limits_{q = 0}^{Q}{I_{2}^{q} \cdot {\sum\limits_{r = 0}^{R}{I_{3}^{r} \cdot {\sum\limits_{n = 1}^{N}{n^{2} \cdot \left( {{{- G_{3{pqrsn}}} \cdot {\sin \left( {n \cdot \theta} \right)}} - {H_{3{pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}} & (111) \end{matrix}$

[0261] The criterion used in selecting current can be to either balance the feed or minimize the sum of squares. In the case of the least squares sum, the following is minimized: $\begin{matrix} {I_{ss} = {\sum\limits_{k = 1}^{3}i_{k}^{2}}} & (112) \end{matrix}$

[0262] A minimum is achieved when: $\begin{matrix} {{\frac{\partial\quad}{\partial i_{k}}I_{ss}} = {{2 \cdot i_{k}} = c}} & (113) \end{matrix}$

[0263] The third row of the Jacobian is then given by expressions of the form: $\begin{matrix} {J_{3k} = {{\frac{\partial^{2}\quad}{\partial i_{k}^{2}}I_{ss}} = 2}} & (114) \end{matrix}$

[0264] Cogging can be included into the solver 34 in the same way as described above in conjunction with the αβ-FoR smooth torque solver.

[0265] Moreover, in a manner similar to that disclosed with the αβ-FoR smooth torque solver, the solution may be calculated across the angle intervals in a given interval simultaneously, rather than in a point by point manner. For a particular torque and sensitivity demand, the solution is to be calculated at various angles:

θ(k) for all k=1, . . . ,N

[0266] The current column vector is given by:

I=(i _(a)(θ(1)) . . . i _(a)(θ(N))i _(b)(θ(1)) . . . i _(b)(θ(N))i _(c)(θ(1)) . . . i _(c)(θ(N)))^(T)  (115)

[0267] If the new

I(n+1)=I(n)+Δ(n)  (116)

[0268] The k'th torque vector is a row vector defined by:

φ_(Tk)=(0 . . . 0 T(θ(k),i _(a)(k),i _(b)(k),i _(c)(k))0 . . . 0)

[0269] Similiarly the kth sensitivity vector is defined by:

φ_(Sk)=(0 . . . 0 S(θ(k),i _(a)(k),i _(b)(k),i _(c)(k))0 . . . 0)

[0270] Finally, the minimum sum of squares current is given by:

φ_(Ik)=(0 . . . 0 I_(ss)(i _(a)(k),i _(b)(k),i _(c)(k))0 . . . 0)

[0271] These vectors can be stacked to form diagonal matrices: $A = {{\begin{pmatrix} \varphi_{T1} \\ \cdots \\ \varphi_{TN} \end{pmatrix}\quad B} = {{\begin{pmatrix} \varphi_{S1} \\ \cdots \\ \varphi_{SN} \end{pmatrix}\quad C} = \begin{pmatrix} \varphi_{I1} \\ \cdots \\ \varphi_{IN} \end{pmatrix}}}$

[0272] Thus, appropriate partial derivatives with respect to the currents are taken and the resultant matrices aggregated to form a 3N by 3N matrix: $\begin{matrix} {\Phi = \begin{pmatrix} {\frac{\partial\quad}{\partial i_{a}}A} & {\frac{\partial\quad}{\partial i_{b}}A} & {\frac{\partial\quad}{\partial i_{c}}A} \\ {\frac{\partial\quad}{\partial i_{a}}A} & {\frac{\partial\quad}{\partial i_{b}}B} & {\frac{\partial\quad}{\partial i_{c}}C} \\ {\frac{\partial\quad}{\partial i_{a}}A} & {\frac{\partial\quad}{\partial i_{b}}B} & {\frac{\partial\quad}{\partial i_{c}}C} \end{pmatrix}} & (117) \end{matrix}$

[0273] The desired torque, sensitivity and rate of change of the sum of squares at a particular angle θ(k) are given by:

[0274] T(θ(k)) S(θ(k)) I(θ(k))

[0275] The demand vector D of these values over the angle range is given by: $\begin{matrix} {D = \begin{pmatrix} {T_{d}\left( {\theta (1)} \right)} \\ {T_{d}\left( {\theta (2)} \right)} \\ \cdots \\ {T_{d}\left( {\theta (N)} \right)} \\ {S_{d}\left( {\theta (1)} \right)} \\ {S_{d}\left( {\theta (2)} \right)} \\ \cdots \\ {S_{d}\left( {\theta (N)} \right)} \\ {I\left( {\theta (1)} \right)} \\ \cdots \\ {I\left( {\theta (N)} \right)} \end{pmatrix}} & (118) \end{matrix}$

[0276] and the actual values of torque and sensitivity resultant from any current combination (i_(a),i_(b),i_(c)) which constitute the iterated solution are given by the column vector: $\begin{matrix} {A = \begin{pmatrix} {T_{d}\left( {{\theta (1)},{i_{a}(1)},{i_{b}(1)},{i_{c}(1)}} \right)} \\ {T\left( {{\theta (2)},{i_{a}(2)},{i_{b}(2)},{i_{c}(2)}} \right)} \\ \cdots \\ {T\left( {{\theta (N)},{i_{a}(N)},{i_{b}(N)},{i_{c}(N)}} \right)} \\ {S\left( {{\theta (1)},{i_{a}(1)},{i_{b}(1)},{i_{c}(1)}} \right)} \\ \cdots \\ {S\left( {{\theta (N)},{i_{a}(N)},{i_{b}(N)},{i_{c}(N)}} \right)} \end{pmatrix}} & (119) \end{matrix}$

[0277] Using this notation and from the development initially presented:

Δ(n)=Φ⁻¹·(D−A)  (120)

[0278] with:

I(n+1)=I(n)+Δ(n)

[0279] In one embodiment of the invention, a PM motor was used with a model fitted via the terminal variables as described herein. From this, smooth torque feeds were calculated for a variety of loads. FIG. 4 illustrates the calculated current profiles for various torques, showing three phase currents generated for a smooth torque solution. FIG. 5 shows a plot for a typical 12-10 PM motor, for which excluding noise and peaks (the plot illustrates raw data) ripple approaches 2% of the mean or 0.8% of the maximum rated torque for that motor (2.5 Nm).

[0280] It has been assumed that the individual components of the electrical model and correspondingly the torque model comprise products of polynomials and trigonometric functions. In alternative embodiments, the polynomials are replaced with true orthogonal functions. These orthogonal functions are built up from polynomials in a recursive manner. In particular polynomials of the form:

[0281]1,x,x²,x³,x⁴,x⁵

[0282] are replaced with expressions of the form: $\frac{1}{\sqrt{2}},{\sqrt{\frac{3}{2}} \cdot x},{\sqrt{\frac{5}{8}} \cdot \left( {{3x^{2}} - 1} \right)},{\sqrt{\frac{7}{8}} \cdot \left( {{5 \cdot x^{3}} - {3 \cdot x}} \right)},{\frac{3}{8 \cdot \sqrt{2}} \cdot \left( {{35 \cdot x^{4}} + 3 - {30 \cdot x^{2}}} \right)},{\sqrt{\frac{43659}{128}} \cdot \left( {x^{5} - {\frac{70}{63} \cdot x^{3}} + {\frac{15}{63} \cdot x}} \right)}$

[0283] There are a number of sound theoretical and practical reasons why models using true orthogonal functions are to be preferred. Typically, more accurate models that have fewer terms can be derived. Such a statement is true when the order of the current terms grows beyond 2. The theoretical reason for this is well understood by those with an understanding of such mathematical structures. Succinctly, model components that are orthogonal to one another do not interact in a detrimental manner. Unnecessary model complexity is avoided and the result is that the torque estimate, achieved via the previously described transforms, are improved.

[0284] The process necessary to derive the mathematical expressions necessary is essentially the same as those described previously. For the purposes of brevity, the critical mathematical expressions and notation are presented without unnecessary repetition of the associated derivations for the balanced feed case.

[0285] Let the r'th order orthogonal function of variable x be:

[0286] g_(r)(x)

[0287] The expression for flux is then: ${\lambda_{\varphi}\left( {i_{\alpha},i_{\beta},\theta} \right)} = {\sum\limits_{p = 0}^{P}\quad {{g_{p}\left( i_{\alpha} \right)} \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( i_{\beta} \right)} \cdot {\sum\limits_{r = 0}^{R}\quad {{g_{r}\left( i_{f} \right)} \cdot {\sum\limits_{n = 0}^{N}\quad \left( {{a_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {b_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)}}}}}}}$

[0288] The derivative of flux is given by: $\begin{matrix} {{\frac{\quad}{t}\lambda_{\varphi}} = {{\sum\limits_{p = 0}^{P}\quad {{f_{p}\left( i_{\alpha} \right)} \cdot \left( {\frac{\quad}{t}i_{\alpha}} \right) \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( i_{\beta} \right)}{\sum\limits_{r = 0}^{R}\quad {{g_{r}\left( i_{f} \right)} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{a_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {b_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}} +}} & \quad \\ {{\sum\limits_{p = 0}^{P}\quad {{g_{p}\left( i_{\alpha} \right)} \cdot {\sum\limits_{q = 0}^{Q}\quad {{f_{q}\left( i_{\beta} \right)} \cdot \left( {\frac{\quad}{t}i_{\beta}} \right) \cdot {\sum\limits_{r = 0}^{R}\quad {{g_{p}\left( i_{f} \right)} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{a_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {b_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}} +} & \quad \\ {{\sum\limits_{p = 0}^{P}\quad {{g_{p}\left( i_{\alpha} \right)} \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( i_{\beta} \right)} \cdot {\sum\limits_{r = 0}^{R}\quad {{f_{r}\left( i_{\beta} \right)} \cdot \left( {\frac{\quad}{t}i_{f}} \right) \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{a_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {b_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}}} +} & \quad \\ {{\sum\limits_{p = 0}^{P}\quad {{g_{p}\left( i_{\alpha} \right)} \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( i_{\beta} \right)} \cdot {\sum\limits_{r = 0}^{R}\quad {{g_{r}\left( i_{f} \right)} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \omega \cdot \left( {{a_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {b_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}}}}\quad} & \quad \\ {{{where}:\quad {\frac{\quad}{x}{g_{p}(x)}}} = {f_{p}(x)}} & \quad \end{matrix}$

[0289] Then, the electrical equation is written: $\begin{matrix} \begin{matrix} \begin{matrix} {\frac{v_{\varphi}}{\omega} = {\frac{R_{\varphi}}{\omega} + {\frac{i_{\alpha}}{\omega} \cdot R_{\varphi \quad \alpha}} + {\frac{i_{\beta}}{\omega} \cdot R_{\varphi \quad \beta}} + {{\frac{i_{\alpha} \cdot i_{\beta}}{\omega} \cdot R_{{\varphi \quad \alpha \quad \beta}\quad}}\quad \ldots} +}} \\ {{\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{\alpha}} \right)} \right\rbrack \cdot {\sum\limits_{p = 0}^{P}\quad {{f_{p}\left( i_{\alpha} \right)} \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( i_{\beta} \right)} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{A_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {B_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}} +} \end{matrix} \\ {{\left\lbrack {\frac{1}{\omega} \cdot \left( {\frac{\quad}{t}i_{\beta}} \right)} \right\rbrack \cdot {\sum\limits_{p = 0}^{P}\quad {{g_{p}\left( i_{\alpha} \right)} \cdot {\sum\limits_{q = 0}^{Q}\quad {{f_{q}\left( i_{\beta} \right)} \cdot {\sum\limits_{n = 0}^{N}\quad {\left( {{A_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}} + {B_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}}} \right)\quad \ldots}}}}}}} +} \end{matrix} \\ {\sum\limits_{p = 0}^{P}\quad {{g_{p}\left( i_{\alpha} \right)} \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( i_{\beta} \right)} \cdot {\sum\limits_{n = 1}^{N}{n \cdot \quad \left( {{A_{\varphi \quad {pqrn}} \cdot {\cos \left( {n \cdot \theta} \right)}} - {B_{\varphi \quad {pqrn}} \cdot {\sin \left( {n \cdot \theta} \right)}}} \right)}}}}}} \end{matrix}$

[0290] Coenergy is derived in a similar manner as previously resulting in: $\begin{matrix} {\omega_{c} = {{\sum\limits_{p = 0}^{P}\quad {\left( {{h_{p}\left( I_{\alpha} \right)} - {h_{p}(0)}} \right) \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( I_{\beta} \right)} \cdot {\sum\limits_{n = 0}^{N}{\begin{bmatrix} {{{\left( {A_{a\quad {pqrn}} - {\frac{1}{2} \cdot A_{b\quad {pqrn}}} - {\frac{1}{2} \cdot A_{c\quad {pqrn}}}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {{\left( {B_{a\quad {pqrn}} - {\frac{1}{2} \cdot B_{b\quad {pqrn}}} - {\frac{1}{2} \cdot B_{c\quad {pqrn}}}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad} \end{bmatrix}\quad \ldots}}}}}} +}} \\ {{\sum\limits_{p = 0}^{P}{{g_{p}(0)} \cdot {\sum\limits_{q = 0}^{Q}\quad {\left( {{h_{q}\left( I_{\beta} \right)} - {h_{q}(0)}} \right) \cdot {\sum\limits_{n = 0}^{N}\begin{bmatrix} {{{\left( {{\frac{- \sqrt{3}}{2} \cdot A_{b\quad {pqrn}}} + {\frac{\sqrt{3}}{2} \cdot A_{c\quad {pqrn}}}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {{\left( {{\frac{- \sqrt{3}}{2} \cdot A_{b\quad {pqrn}}} + {\frac{\sqrt{3}}{2} \cdot A_{c\quad {pqrn}}}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad} \end{bmatrix}}}}}}\quad} \end{matrix}$

[0291] where:

h _(p)(x)=∫f _(p)(x)dx

[0292] Then, torque is given by: $\begin{matrix} {T = {{\sum\limits_{p = 0}^{P}\quad {\left( {{h_{p}\left( I_{\alpha} \right)} - {h_{p}(0)}} \right) \cdot {\sum\limits_{q = 0}^{Q}\quad {{g_{q}\left( I_{\beta} \right)} \cdot {\sum\limits_{n = 0}^{N}{{n \cdot \begin{bmatrix} {{{\left( {A_{a\quad {pqrn}} - {\frac{1}{2} \cdot A_{b\quad {pqrn}}} - {\frac{1}{2} \cdot A_{c\quad {pqrn}}}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {{{- \left( {B_{a\quad {pqrn}} - {\frac{1}{2} \cdot B_{b\quad {pqrn}}} - {\frac{1}{2} \cdot B_{c\quad {pqrn}}}} \right)} \cdot {\sin \left( {n \cdot \theta} \right)}}\quad} \end{bmatrix}}\quad \ldots}}}}}} +}} \\ {{\sum\limits_{p = 0}^{P}{{g_{p}(0)} \cdot {\sum\limits_{q = 0}^{Q}\quad {\left( {{h_{q}\left( I_{\beta} \right)} - {h_{q}(0)}} \right) \cdot {\sum\limits_{n = 0}^{N}{n \cdot \begin{bmatrix} {{{\left( {{\frac{- \sqrt{3}}{2} \cdot A_{b\quad {pqrn}}} + {\frac{\sqrt{3}}{2} \cdot A_{c\quad {pqrn}}}} \right) \cdot {\cos \left( {n \cdot \theta} \right)}}\quad \ldots} +} \\ {{\left( {{\frac{- \sqrt{3}}{2} \cdot A_{b\quad {pqrn}}} + {\frac{\sqrt{3}}{2} \cdot A_{c\quad {pqrn}}}} \right) \cdot {\sin \left( {n \cdot \theta} \right)}}\quad} \end{bmatrix}}}}}}}\quad} \end{matrix}$

[0293] As previously, a solver can now be defined which will calculate the necessary current values to achieve the desired solution.

[0294] One property and advantage associated with the use of model components which are truly orthonormal is that with just the most basic model present it is possible to calculate the parameters of other additional orthonormal model components in isolation from one another. That is, the model can be refined by the addition of a new orthonormal expression. The parameters for the model components estimated and the new model component can be either kept or discarded dependant upon the magnitude of the parameter associated with it.

[0295] In this manner, many different model components can be sieved in a numerically efficient and elegant manner to determine whether they should be included in the model or not. More particularly, the model fitting process can be fully automated. Starting from a very basic model (the presence of resistance terms, non-angle varying inductance) it is possible to automate the selection of model components. Starting from a basic model as described above, the electrical model is extended by selecting one or more additional “candidate” basis functions. Refiting the model results in a new set of model parameters.

[0296] Those parts of the model, or functions, with significant coefficients or parameters are kept while other parts are rejected. The test for significant a model component can be as simple as testing whether the absolute value of the coefficient is greater than some predefined percentage of the absolute value of the current biggest parameter. Such a sieving process allows for the automatic building up of a model. It is the use of orthonormal basis functions which allows for this activity, due to their minimal interaction. If the “standard” polynomials are used then the sieving process becomes confused.

[0297] The adaptive control schemes disclosed herein have several applications. For example, in accordance with certain embodiments of the invention, the control scheme is embedded into a speed control loop for use in a speed servo application. The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. For example, the electrical model which uses a product of polynomials and trigonometric functions can be written as a product of polynomials and complex exponentials: $\lambda_{\varphi} = {\sum\limits_{p = 0}^{P}{i_{\alpha}^{p} \cdot {\sum\limits_{q = 0}^{Q}{i_{\beta}^{q} \cdot {\sum\limits_{r = 0}^{R}{i_{f}^{r} \cdot {\sum\limits_{n = {- N}}^{N}{e_{\varphi \quad {pqrn}} \cdot {\exp \left( { \cdot n \cdot \theta} \right)}}}}}}}}}$

[0298] Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below. 

What is claimed is:
 1. A method for controlling a rotating electromagnetic machine, the machine including a stator and a rotor that rotates relative to the stator, the stator including a plurality of phase windings, the method comprising: receiving feedback regarding the rotor position relative to the stator; receiving feedback regarding energization of the phase windings; developing a first mathematical model based on the rotor position and energization feedback to describe electrical behavior of the machine; developing a second mathematical model via a mathematical transform of the first mathematical model to describe torque characteristics of the machine; receiving a torque demand signal; and calculating a phase energization current value via the second mathematical model and the torque demand signal.
 2. The method of claim 1, further comprising energizing the phase windings with the calculated phase energization current value.
 3. The method of claim 1, wherein the first mathematical model is non-linear.
 4. The method of claim 1, wherein the first mathematical model describes electrical behavior of the machine over a predetermined operating range.
 5. The method of claim 3, wherein the electrical behavior described by the first mathematical model includes the relationship between voltage, current and rotor position over the predetermined operating range.
 6. The method of claim 1, wherein the first and second mathematical models include components that comprise products of polynomials and trigonometric functions.
 7. The method of claim 1, wherein the first and second mathematical models include components that comprise orthogonal functions.
 8. The method of claim 1, wherein the first mathematical model includes parameters estimated recursively.
 9. The method of claim 8, wherein collected data older than a predetermined age is not used in parameter estimation.
 10. The method of claim 1, further comprising generating a lookup table correlating torque demand values with the phase energization current values.
 11. The method of claim 1, wherein calculating the phase energization current value includes calculating the phase energization current value in accordance with a desired machine behavior.
 12. The method of claim 11, wherein the desired machine behavior includes minimizing torque ripple.
 13. The method of claim 12, wherein the phase energization current is further calculated to reduce sensitivity to rotor position measurement errors.
 14. The method of claim 1, further comprising updating the second mathematical model at predetermined times.
 15. The method of claim 14, wherein the predetermined times occur when the machine is not operating.
 16. The method of claim 2, wherein the phase windings are energized with a balanced feed.
 17. The method of claim 1, wherein developing the second mathematical model includes modeling the non-load dependent cogging torque.
 18. The method of claim 17, wherein modeling the non-load dependent cogging torque comprises: spinning the rotor unloaded at a predetermined angular velocity; measuring the phase windings voltage and current; determining the rotor positions associated with the voltage and current measurements; developing a first mathematical model based on the measured voltage and rotor position to describe electrical behavior of the machine; developing a second mathematical model via a mathematical transform of the first mathematical model to describe torque characteristics of the machine; energizing the windings such that the rotor holds a predetermined position; and calculating the cogging torque for the predetermined position via the second mathematical model.
 19. A system for controlling a rotating electromagnetic machine including a stator having a plurality of phase windings, a rotor that rotates relative to the stator, and a drive connected to the phase windings for energizing the windings, the control system comprising: an estimator connectable to the machine for receiving signals representing the phase winding voltage and rotor position; the estimator outputting parameter estimations for an electrical model of the machine based on the received voltage and rotor position; a torque model receiving the parameter estimations from the estimator, the torque model outputting estimates of torque for associated rotor position-phase current combinations; and a controller having input terminals for receiving a torque demand signal and the rotor position signal, the controller adapted to output a control signal to the drive in response to the torque demand and rotor position signals and the torque model.
 20. The system of claim 19, wherein the estimator outputs the model parameters at predetermined times.
 21. The system of claim 20, wherein the predetermined times comprise times when the rotating machine is not operational.
 22. The system of claim 19, further comprising a solver coupled to the torque model and the controller, the solver calculating phase current profiles to energize the machine to achieve a predetermined machine behavior.
 23. The system of claim 22, wherein the predetermined machine behavior includes minimizing torque ripple.
 24. The system of claim 23, wherein the phase energization current is further calculated to reduce sensitivity to rotor position measurement errors.
 25. The system of claim 22, wherein the current profiles calculated by the solver are stored in a lookup table accessible by the controller.
 26. The system of claim 22, wherein the solver updates the current profiles at predetermined times.
 27. A rotating electromagnetic machine system, comprising: a stator; a plurality of phase windings situated in the stator; a rotor situated so as to rotate relative to the stator; a rotor position sensor outputting a signal representing the rotor position relative to the stator; a drive connected to the phase windings for energizing the windings; an estimator connected to the phase windings and the rotor position sensor to receiving signals representing the phase winding voltage and rotor position; the estimator outputting parameter estimations for an electrical model of the machine based on the received voltage and rotor position; a torque model receiving the parameter estimations from the estimator, the torque model outputting estimates of torque for associated rotor position-phase current combinations; and a controller having input terminals for receiving a torque demand signal and the rotor position signal, the controller adapted to output a control signal to the drive in response to the torque demand and rotor position signals and the torque model.
 28. The system of claim 27, further comprising a solver coupled to the torque model and the controller, the solver calculating phase current profiles to energize the phase windings to achieve a predetermined machine behavior.
 29. The system of claim 28, wherein the current profiles calculated by the solver are stored in a lookup table accessible by the controller.
 30. The system of claim 27, wherein the driver energizes the phase windings with a balanced feed.
 31. A method of determining a non-load dependent cogging torque in a permanent magnet motor having a stator, a plurality of stator windings having terminals connectable to a source of power for energizing the windings, a rotor situated to rotate relative to the stator, the method comprising: spinning the rotor unloaded at a predetermined angular velocity; measuring voltage and current at the motor terminals; determining the rotor positions associated with the voltage and current measurements; developing a first mathematical model based on the measured voltage and rotor position to describe electrical behavior of the machine; developing a second mathematical model via a mathematical transform of the first mathematical model to describe torque characteristics of the machine; energizing the windings such that the rotor holds a predetermined position; and calculating the cogging torque for the predetermined position via the second mathematical model.
 32. The method of claim 31, further comprising calculating the cogging torque for a plurality of predetermined positions about a complete revolution of the rotor.
 33. The method of claim 31, wherein spinning the rotor unloaded comprises spinning the rotor unenergized.
 34. The method of claim 31, wherein the rotor is spun at a plurality of predetermined angular velocities. 